Chapter 12. Change Management Pipelines for Infrastructure

Previous chapters have discussed the use of continuous integration (CI) to automatically test changes to scripts, tools, and configuration definitions, as they are committed to source control. They have also mentioned continuous delivery (CD), which builds on this to provide assurance that all of the elements of a system work correctly after a change.

This chapter explains how to implement continuous delivery for infrastructure by building a change management pipeline.

A deployment pipeline1 is used in CD to manage the deployment and testing of software to a series of validation stages whenever there is a change to the codebase. The validations ensure that the codebase is production ready and that it will deploy correctly and reliably. The same automated process is used to deploy and configure the software in each environment, including production, to prevent the classic “worked in test; failed in live” issues that arise from inconsistencies and manual processes.

The point of CD and the software deployment pipeline is to allow changes to be delivered in a continuous flow, rather than in large batches. Changes can be validated more thoroughly, not only because they are applied with an automated process, but also because changes are tested when they are small, and because they are tested immediately after being committed. The result, when done well, is that changes can be made more frequently, more rapidly, and more ...

Get Infrastructure as Code 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.