Achieve Reliable Release Automation (May your pager be silent)
Key Features
- Gain the skills to build command line tools to control thousands of nodes
- Use Go to create Terraform providers, Github actions and extend Kubernetes
- Attain the knowledge to build DevOps workflows that are understandable, scalable and safe
Book Description
DevOps is a methodology to deliver services fast and safely, while Go is a compiled, fast and powerful language that prevailing DevOps software is written in. This book will help you achieve rapid and safe deployments of software using Go.
You will learn how to write basic Go programs, automate configuration management, update remote machines, use Go in CI/CD, interact with Kubernetes and more. The book will show you how to get control of your infrastructure and software deployment models so that you can drink coffee and read a book instead of debugging deployment problems. As a DevOps engineer, you will also learn to act quickly and proactively to failure states. You will also get well versed with release engineering, using common tools for creating service builds ready for deployment, and leading tools for deploying distributed applications. Lastly, you will not only learn about important decisions that are needed to provide robust services but also one of the most important things that is the relationship of DevOps to the developer teams.
By the end of the book, you will understand how to use the Go language to choose a myriad of options to safely build your own workflows. This will help you to control and deploy services using custom software or extend popular frameworks such as Kubernetes, Terraform, Github Actions and more
What you will learn
- Learn the basic structure of Go language to begin your DevOps journey
- Interact with file systems to read or stream data
- Communicate with remote services via REST and gRPC
- Explore writing tools that can be used in the DevOps environment
- Develop command line operational software in Go
- Working with popular frameworks to deploy production software
- Create Github actions that streamline your CI/CD process
- Write a ChatOps application with Slack to simplify production visibility
Who This Book Is For
This book is for Ops engineers, DevOps engineers who would like to use Go to develop their own DevOps tooling or to integrate custom features with DevOps tools such as Kubernetes, Github Actions, HashiCorp Packer and Terraform. The reader should have experience with some type of programming language, but not necessarily Go.
Table of Contents
- Go Language Basics
- Go Language Essentials
- Setup Our Environment
- Filesystem Interactions
- Interacting With Data
- Interacting With Remote Data Sources
- Writing command line tools
- Automation using the Command line
- Observability with OpenTelemetry
- Creating GitHub Actions CI/CD
- Using ChatOps to Increase Efficiency
- Immutable Infrastructure Using Packer and Ansible
- Infrastructure as Code with Terraform
- Kubernetes Orchestration
- Programming the Cloud
- Designing for Chaos