Part III. Assembling the System
In Part II, you learned about the practices that support maintaining reliable and sustainable systems. In Part III, I’m going to focus on assembling the system, which pulls together all the practices from Part II along with the fundamental building blocks (computing environments, storage, and networking) from Part I. Infrastructure is vast and varied. It’s a widely accepted practice to eliminate snowflake servers with infrastructure as code. Yet, every organization has its unique methods, which leads to challenges in solving infrastructure management and needless arguments about the one way to do it.
I’ve seen a number of tools, techniques, and practices to manage infrastructure advocated for in my years in the industry. Some have weathered time and some have not. Ultimately, you need to build reusable, versioned artifacts from source. This will include building and configuring a continuous integration and continuous delivery pipeline. Automation of your infrastructure reduces the cost of creating and maintaining environments, reduces the risk of single points of critical knowledge, and simplifies the testing and upgrading of environments.