Second edition (early release)
The second edition of Infrastructure as Code is now available as an early release. This is the first eight chapters, of what looks to be eighteen or so. Check it out and please let me know what you think!
Infrastructure as Code, written by Kief Morris, from O'Reilly Publishing.
Virtualization, cloud infrastructure, and configuration automation tools have swept into mainstream IT over the past decade. The promise of these tools is that they will automatically do the routine work of running an infrastructure, without involving the humans on the infrastructure team. Systems will all be up to date and consistent by default. Team members can spend their time and attention on high level work that makes significant improvements to the services they support. They can quickly, easily, and confidently adapt their infrastructure to meet the changing needs of their organization.
However, most IT infrastructure teams don't manage to get to this state, no matter which tools they adopt. They may be able to easily add servers and resources to their infrastructure, but still spend their time and attention on routine tasks like setting up and updating servers. They struggle to keep all of their servers consistently configured and up to date with system patches. They don't have enough time to spend on the more important projects and initiatives that they know will really make a difference to their organization.
Infrastructure as code is an approach to using newer technologies to build and manage dynamic infrastructures. It treats the infrastructure, and the tools and services that manage the infrastructure itself, as a software system, adapting software engineering practices to manage changes to the system in a structured, safe way. This results in infrastructure with well tested functionality to manage routine operational tasks, and a team that has clear, reliable processes for making changes to the system.
My hope is that this book provides a practical vision for how to manage IT infrastructure, with techniques and patterns that teams can try and use.