Chapter 9. Continuous delivery: A perfect fit for Docker principles
This chapter covers
- The Docker contract between dev and ops
- Taking manual control over build availability across environments
- Moving builds between environments over low-bandwidth connections
- Centrally configuring all containers in an environment
- Achieving zero-downtime deployment with Docker
Once you’re confident that all of your builds are being quality-checked with a consistent CI process, the logical next step is to start looking at deploying every good build to your users. This goal is known as continuous delivery (CD).
In this chapter we’ll refer to your “CD pipeline”—the process your build goes through after it comes out of your “CI pipeline.” The dividing line can sometimes be blurred, but think of the CD pipeline as starting when you have a final image that has passed your initial tests during the build process. Figure 9.1 demonstrates how the image might progress through a CD pipeline until it (hopefully) reaches production.
It’s worth repeating that last point—the image that comes out of CI should be final and unmodified throughout your CD process! Docker makes this easy to enforce with immutable images and encapsulation of state, so using Docker takes you one step down the CD road already.