Chapter 5. Design Principles For Infrastructure as Code

A good system architecture leads to an implementation that is effective in meeting the needs of its users, and that is easy to continuously evolve with those needs. This chapter discusses how to do this in the context of infrastructure implemented through code.

Traditional approaches to infrastructure architecture assume that an initial design, once implemented, won’t change much. Many people aspire to treat designing software like designing a bridge or a building.1 These designers try to anticipate all potential future needs and then design a system that can handle them all. The result is most often overly complex systems that need to be completely replaced a few years later.

Software, including infrastructure defined as code, is much easier to change than a bridge or skyscraper. The difficulties that people have encountered with changing software mostly come from complex ...

Get Infrastructure as Code, 3rd Edition 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.