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.