Chapter 14. Continuity with Dynamic Infrastructure

The previous chapters in this part of the book have focused on how to make changing infrastructure configuration easy while also maintaining high levels of quality, through testing, using an automated change pipeline, and effective workflows. This chapter is concerned with the operational quality of production infrastructure.

I use the term “continuity” as a catchall for operational quality. The goal of continuity is for services to be continuously available to users without interruption. Services should perform quickly and correctly. Data should be available and correct. Malicious people should not be able to compromise the service in any way. If something goes wrong, it should be quickly detected and recovered, with little or no impact to users.

The traditional approach to continuity is to limit and control change. Any change creates the risk of breaking something.1 So processes and systems focus on minimizing the number of changes and thoroughly evaluating each change before it is made.

Dynamic infrastructure disrupts this approach, in pretty much every sense of the word. Systems are constantly being changed. Resources may be added, removed, resized, and reconfigured throughout the day. Early morning maintenance windows aren’t compatible with the need to automatically scale a server pool to adjust to hourly traffic patterns. Continuous change feels like a recipe for continuous outages.

The modern organization’s imperative ...

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.