OSCON Proposal: Building SRE CLI Tooling, CI/CD Pipelines for x-plat for Windows, *nix, & Mac in Go

Proposal Title:

Building SRE CLI Tooling, CI/CD Pipelines for x-plat for Windows, *nix, & Mac in Go

One-sentence description of your presentation:

A walk through the wily world of site reliability tooling work with Go and why it’s become the defacto language for systems engineering work.

Topic:

Emerging Languages and Frameworks

Session Type:

3-hour tutorial.

Abstract:

Why is Go a great language and stack for building site reliability tooling? In this talk I’ll take a look at what site reliability engineering often involves and how the Go language maps to those projects. I’ll also delve into the ideas around Linux, Windows, and MacOS Cross Platform compatibility that Go is renown for with some working examples of build systems that help to streamline the tool engineering process.

The basic outline for this tutorial workshop includes:

  • A short intro: Site Reliability Engineering (SRE) and the elements the tutorial will map to Go.
  • A CI/CD Pipeline for SRE tools engineering with Go for Windows, Linux, and MacOS.
  • Mapping key Go features to needs around reliability engineering.
  • Building CLI’s (Command Line Interfaces) and site tools in Go.

Audience Level:

Intermediate

What’s the takeaway for the audience:

  1. Attendees will get a general understanding of Go features along with some Go coding experience for use with building CLI’s and tools engineering.
  2. Attendees will gain knowledge around CI/CD Pipelines for Go, how to set them up, and receive documentation and tooling via repo around setup of the example pipelines I’ll show.
  3. Mapping the key features from Go to SRE work will include a number of repos and subsequent example repos that each attendee will receive.
  4. Attendees will gain an understanding of the libraries, frameworks, and related tools in Go to help build CLI’s and related site tools.

Prerequisite knowledge for this presentation:

Understanding of language constructs (if then else, while, functions), general programming patterns, server and database administration, with some knowledge of networking.

Hardware and/or installation requirements for attendees:

Attendees should have a laptop with Go 1.10 or newer, a Github account with Git installed on the system. It would also help to have access to bash on system, so if using Windows ideally would have git-bash or something related for issuing commands. It can be done with Powershell but commands won’t be provided for Powershell.