Chapter 8. Patterns for Updating and Changing Servers

Dynamic infrastructure makes it easy to create new servers, but keeping them up to date once they’ve been created is harder. This combination often leads to trouble, in the shape of a sprawling estate of inconsistent servers. As seen in earlier chapters, inconsistent servers are difficult to automate, so configuration drift leads to an unmanageable spaghetti infrastructure.

So a processes for managing changes to servers is essential to a well-managed infrastructure. An effective change management process ensures that any new change is rolled out to all relevant existing servers and applied to newly created servers. All servers should be up to date with the latest approved packages, patches, and configuration.

Changes to servers should not be allowed outside the automated process. Unmanaged changes lead to configuration drift and make it difficult to quickly and reliably reproduce a given server. If changes are routinely made by bypassing the automation, then this is a sign that the processes need to be improved so that they are the easiest and most natural way for team members to work.

The process for updating servers should be effortless so that it can scale as the number of servers grows. Making changes to a server should be a completely unattended process. A person may initiate a change, for example, by committing a change to a configuration definition. Someone may also manually approve a change before it is applied to ...

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.