Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Go as a Tooling Language for the Cloud

Go as a Tooling Language for the Cloud

There is ‚as Code’ for everything! We use CloudFormation or Terraform for Infrastructure as Code, various different file formats for Pipeline as Code and of course describe our application definitions as code with Helm Charts. Usually lots of copy’n paste and bash script is necessary to spin up another environment for your application. With Go you have the ease of using just your command line combined with the power of a strongly typed language with official libraries for nearly every cloud service you can think of. The only requirement to start developing is your favorite text editor and the Go compiler. In this talk you will learn how to use the programming language most of your favorite cloud tools are made of, to write small and easy to use customized command line tools. We will take a look at Go and its built-in features like the templating engine, concurrency and static compilation to do repetitive tasks much more efficiently and less error prone.

Jannis Schaefer

March 12, 2019
Tweet

More Decks by Jannis Schaefer

Other Decks in Programming

Transcript

  1. Jannis Schaefer | cosee [email protected] | @jannisschaefer How Go can

    save a DevOps day It’s all about your tooling
  2. Jannis Schaefer | cosee [email protected] | @jannisschaefer How Go can

    save a DevOps day It’s all about your tooling We are Cloud Native!
  3. Jannis Schaefer | cosee [email protected] | @jannisschaefer How Go can

    save a DevOps day It’s all about your tooling A tailor-made team for your needs! Cloud Backend Mobile Frontend DevOps Agile Marketing Design
  4. Why script when you could Go? • Clean syntax =

    No magic™ • Concurrency in mind • Powerful tooling • Quickly compiled to assembly • Static binaries for all mayor platforms • Garbage Collection medium.com/@kevalpatel2106/why-should-you-learn-go-f607681fad65
  5. Standard Library https://golang.org/pkg/#stdlib archive bufio compress context crypto database/sql encoding

    errors expvar flag fmt html image io log math net/http net net/mail os path reflect regexp sort strings testing text text/template time encoding/json encoding/xml
  6. Things you need to Go • Go installation from golang.org/dl/

    • Some text editor or IDE (VSCode, GoLand, vim) • Built-in tools you heard of today
  7. Go for what? • Server applications and micro services •

    http/2 support built-in • small size Docker containers
 • CLI tools for different platforms & Automatization • Easy cross compilation • Official library for almost every cloud service
  8. Where to Go now? Effective Go „Offical Guide“ golang.org/doc/effective_go.html Links

    to learning resources github.com/golang/go/wiki/Learn Small code examples gobyexample.com Awesome contributed libraries github.com/avelino/awesome-go Democode github.com/schjan/image-converter
  9. Jannis Schaefer | cosee GmbH [email protected] | @jannisschaefer > blog.cosee.biz

    > jobs.cosee.biz > cosee.biz github.com/ashleymcnamara/gophers