Welcome to Go for DevOps
Go is the language DevOps tools are written in: Docker, Kubernetes, Terraform, Prometheus, Vault. All Go. This course teaches you to build the same kind of tooling yourself. No more gluing shell scripts together. No more fighting YAML generators. Write real programs that automate your infrastructure.
What We're Building
Custom DevOps tools throughout: a production CLI, a container manager, a Kubernetes operator, a metrics exporter, a log shipper, and a deployment automator. Each lesson produces something you can actually use in your workflows.
What You'll Learn
- CLI tooling: Cobra-based CLIs with subcommands, config files, and multiple output formats
- SSH & remote execution: programmatic SSH sessions, file transfer, and jump hosts
- Docker SDK: managing containers, images, and networks from Go code
- Container images: building OCI images without a Docker daemon
- Kubernetes client-go: listing, watching, creating, and patching K8s resources
- K8s operators: custom resources, controllers, and reconciliation loops
- Infrastructure as Code: declarative state, diff/apply patterns, and Pulumi Automation API
- Git automation: cloning, committing, branching, and webhook handlers with go-git
- Secrets management: HashiCorp Vault client, env injection, and secret rotation
- Metrics & Prometheus: custom exporters, instrumentation, and PromQL basics
- Log pipelines: structured log shipping, tail-based agents, and alert rules
- Health checks: liveness/readiness probes, dependency checks, and circuit breakers
- CI/CD tooling: custom pipeline runners, artifact management, and status reporting
- Deployment automation: rolling updates, canary logic, and rollback strategies
Why This Course?
- Practical: every lesson builds a tool you'd actually use on the job
- Cloud-agnostic: focuses on Docker, Kubernetes, and open-source tooling, no vendor lock-in
- Production patterns: error handling, retries, graceful shutdown, and observability baked in from the start
- Fills the gap: sits between "Go in Practice" (HTTP services) and "Go Systems Programming" (low-level OS)
Prerequisites
Complete Go Essentials and Go in Practice. You should be comfortable with HTTP servers, JSON handling, interfaces, and error patterns. Familiarity with Go Concurrency Patterns helps for the operator and pipeline lessons. You should also have basic Docker and Kubernetes knowledge. This course teaches the Go SDK, not container fundamentals.
Course Structure
We start with CLI foundations, move into the container and Kubernetes ecosystem, then cover infrastructure automation and observability, and finish with deployment pipelines. Each lesson builds on the previous ones but can also stand alone as a reference. Pick your first lesson from the sidebar!