Chapter 14. Continuous Deployment in Kubernetes
Tao does not do, but nothing is not done.
Lao Tzu
In this chapter, we’ll look at a key DevOps principle—continuous integration and continuous deployment (CI/CD) and see how we can achieve this in a cloud native, Kubernetes-based environment. We outline some of the options for setting up continuous deployment pipelines to work with Kubernetes, and show you a fully worked example using Google’s Cloud Build. We will also cover the concept of GitOps and walk through how to automatically deploy to Kubernetes using a GitOps tool called Flux.
What Is Continuous Deployment?
Continuous deployment (CD) is the automatic deployment of successful builds to production. Like the test suite, deployment should also be managed centrally and automated. Developers should be able to deploy new versions by either pushing a button, or merging a merge request, or pushing a Git release tag.
CD is often associated with continuous integration (CI): the automatic integration and testing of developers’ changes against the mainline branch. The idea is that if you’re making changes on a branch that would break the build when merged to the mainline, continuous integration will let you know that right away, rather than waiting until you finish your branch and do the final merge. The combination of continuous integration and deployment is often referred to as CI/CD.
The machinery of continuous deployment is often referred to as a pipeline: a series of automated ...
Get Cloud Native DevOps with Kubernetes, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.