Build & maintain complex distributed systems
October 1–2, 2017: Training
October 2–4, 2017: Tutorials & Conference
New York, NY

In-Person Training
Let’s Go! Using the Go programming language for system tasks

Sunday, October 1 & Monday, October 2, 9:00am - 5:00pm
Location: Morgan

Participants should plan to attend both days of this 2-day training course. Training passes do not include access to tutorials on Monday.

Go has established itself as a popular language for systems programming, services, and tools, and more people are using Go for tasks that would traditionally have been solved using Python or Ruby. Michael Hausenblas teaches you Go from scratch and walks you through how to use it for system tasks such as batch file operations, container inspection, and access control automation.

What you'll learn, and how you can apply it

  • Learn how to use Go, when to use it (and when not), and how to apply best practices for system tasks

This training is for you because...

  • You're a sysadmin, DevOps engineer, or developer who manages infrastructure, and you want to use Go to help automate parts of your daily work.

Prerequisites:

  • Basic familiarity with the command line
  • A working knowledge of any programming language (useful but not required)

Hardware and/or installation requirements:

  • A laptop
  • A GitHub account (useful but not required)

Go has established itself as a popular language for systems programming, services, and tools, and more people are using Go for tasks that would traditionally have been solved using Python or Ruby. (Many system tools—container technologies like Docker and Kubernetes, for example—are developed in Go.) Go produces statically linked binaries across the major operating systems (Linux, Windows, and macOS) and platforms (x86, AMD, ARM, etc.) and comes with a powerful standard library providing you with everything you need, from networking to security to filesystem operations.

Michael Hausenblas teaches you Go from scratch and walks you through how to use it for system tasks such as batch file operations, container inspection, and access control automation.

Outline

Day 1

An overview of Go

  • Why Go? History and philosophy of Go
  • Tooling (building, testing, dependency management)
  • Language features by example
  • Advanced Go programming (concurrency, databases, etc.)
  • Good practices (idiomatic Go, limitations)
  • Go and containers

Day 2

A review of tools written in Go, focusing on patterns and packages used

Implementing your own tool using Go (choose one of the following:)

  • Reimplement one of the tools you’ve developed in another language (bash scripts, Python, etc.)
  • Write a tool you will need in the near future from scratch
  • Create a tool from an instructor-provided prompt

About your instructor

Photo of Michael Hausenblas

Michael Hausenblas is a developer advocate for OpenShift and Kubernetes at Red Hat, where he helps app ops engineers build and operate distributed services. Michael shares his experience with distributed systems and large-scale data processing through demos, blog posts, and public speaking engagements and contributes to open source software such as OpenShift and Kubernetes. Previously, Michael was a developer advocate at Mesosphere, chief data engineer at MapR Technologies, and a research fellow at the National University of Ireland, Galway, where he researched large-scale data integration and the internet of things and gained experience in advocacy and standardization (World Wide Web Consortium, IETF).

Twitter for mhausenblas

Conference registration

Get the Platinum pass or the Training pass to add this course to your package.