This chapter starts off with an introduction to the concept of Infrastructure as Code. Infrastructure as Code, also referred to as programmable infrastructure, involves the writing of code to manage infrastructure configuration, deployments and automatic provisioning.
Infrastructure as Code is a philosophy that takes you further than traditional change management automation practices, which involve only the replication of install/configure steps on multiple servers without your intervention. Infrastructure as Code ensures that all of your servers and other infrastructure components are provisioned consistently and effortlessly.
Under an Infrastructure as Code methodology, you go beyond the writing of mere automation scripts to using tested and established software practices that application developers have been successfully using for ages. These practices include version control, testing, using design patterns, and so on, all of which have revolutionized software development in recent years. This means that you go way beyond the mere automation of your change management processes.
The bulk of this chapter is devoted to how you use various tools for configuration management and infrastructure automation coding. Using tools such as Chef, Puppet, Salt and Ansible, you can plan the setting up, packaging, and delivery of applications in your infrastructure as code. Using this code, you can build an ...