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 deployment—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 (CD) pipelines to work with Kubernetes, and show you a fully worked example using Google’s Cloud Build.

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 actions that take code from the developer’s workstation to production, via a sequence of test and acceptance stages.

A typical pipeline for containerized applications ...

Get Cloud Native DevOps with Kubernetes 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.