Home
Google SRE Chapter 8 — Release Engineering

3 mins

Google SRE Chapter 8 — Release Engineering

Chapter 7 was about the evolution of automation. Chapter 8 takes one of its most concrete applications, the process of shipping software to production, and treats it as a discipline in its own right: Release Engineering.

Why Release Engineering Deserves Its Own Discipline

Google points out that at most companies, the release process is ad hoc; every developer deploys however they see fit, and that carries real risk as things scale. At Google, Release Engineers are a role separate from software engineers but working closely with them, responsible for the reliability and repeatability of build and deploy processes.

Four Core Principles

Self-service, development teams should be able to run their own releases without constantly depending on a release engineer. The release engineer's job is to build the process, not to manually manage every single release.

High velocity, releasing often actually lowers risk, since each release carries a smaller amount of change. Big, infrequent releases are the riskier ones. This ties directly back to the error budget logic from Chapter 3, frequent, small changes burn through the budget in a far more predictable way.

Hermetic builds, the output of a build should be identical no matter which machine it runs on or when. An outside dependency, say a global library version sitting on the system, shouldn't be able to affect the build at all. This is the root-cause fix for the classic "works on my machine" problem.

Policies and procedures, rules around who can deploy what, which approvals are required, and how changes get tracked need to be clear and consistent.

Configuration Is a Release Too

Another point the chapter drives home: configuration deserves the same care as code. Config changes should be treated as releases in their own right, since in practice, a lot of outages come not from code changes but from config changes.

Closing Thoughts

Chapter 8 reads like a natural continuation of Chapter 7. Automating the release process is a concrete application of the toil-reduction and reliable-repeatability themes from earlier chapters. Google's own internal tool, Rapid, gets mentioned here as an example, a system that manages build, test, and deploy in a single unified pipeline.

Through a 2026 Lens: Four Principles, Now Off the Shelf

The idea of hermetic builds is now standard practice, thanks to containers and reproducible build tooling. In the Kubernetes and Terraform world, immutable images and declarative config are a direct application of this principle, once an image is built, it behaves the same way regardless of where it runs.

The really interesting shift is here: a decade ago, putting these four principles (self-service, high velocity, hermetic builds, policy) into practice required a serious, Google-scale engineering investment. Today, tools like GitHub Actions, ArgoCD, and Flux hand you nearly all of it off the shelf. A developer can set up a self-service, repeatable, policy-controlled pipeline with a handful of YAML files, something that wasn't impossible a decade ago, just far more expensive.

The idea that "config changes are releases too" maps almost exactly onto GitOps as a philosophy today, everything lives as code, every change goes through review, every change can be rolled back. GitOps can really be thought of as the next generation of the framework this chapter laid out ten years ago, the difference being that it's no longer something only Google can afford, it's a standard anyone can reach for.

Next time, I'll move on to Chapter 9: Simplicity, the final chapter of Part II.

Thanks for reading.