This book explains how to take advantage of technologies like cloud, virtualization, and configuration automation to manage IT infrastructure using tools and practices from software development. These technologies have decoupled infrastructure from the underlying hardware, turning it into data and code. "Infrastructure as Code" has emerged alongside the DevOps movement as a label for approaches that merge concepts like source control systems, Test Driven Development (TDD) and Continuous Integration (CI) with infrastructure management.
Virtualization and cloud make it easy to rapidly expand the size of infrastructure, but the habits and practices we used in the past with hardware-based infrastructure don't keep up. Teams end up with hundreds of servers, all a bit different, and find themselves unable to fully automate their infrastructure.
The book will go through the challenges and problems created by all these wonderful new tools, and the principles and mindset changes that a team needs to make to use them effectively. It describes patterns, practices, and ideas that have been adopted from software development, especially Agile concepts, and brought into the IT Ops world as part of the DevOps movement. These ways of working have been proven in many organizations, including well known names like Netflix, Amazon, and Etsy, and also in more established organizations including publishers, banks, and even the British government.
Table of Contents
Part I. Foundations
Chapter 1. Challenges and Principles
Chapter 2. Dynamic Infrastructure Platforms
Chapter 3. Infrastructure Definition Tools
Chapter 4. Server Configuration Tools
Chapter 5. General Infrastructure Services
Part II. Patterns
Chapter 6. Patterns for Provisioning Servers
Chapter 7. Patterns for Managing Server Templates
Chapter 8. Patterns for Updating and Changing Servers
Chapter 9. Patterns for Defining Infrastructure
Part III. Practices
Chapter 10. Software Engineering Practices for Infrastructure
Chapter 11. Testing Infrastructure Changes
Chapter 12. Change Management Pipelines for Infrastructure
Chapter 13. Workflow for the Infrastructure Team
Chapter 14. Continuity with Dynamic Infrastructure
Chapter 15. Organizing for Infrastructure as Code