Infrastructure as code (IaC) is an approach to software development that treats physical compute, storage and network fabric resources as web services and allows apps to run where they are best suited, based on cost and performance data. Essentially, IaC negates the need for software engineers to be concerned with the physical location of infrastructure components. Instead, when a software application requests infrastructure to run, available services are located through an automated discovery process and resources are allocated on demand. When an infrastructure resource is no longer required, it is re-appropriated so it can be allocated to another application that needs it. Examples of IaC tools include AWS CloudFormation, Red Hat Ansible, Chef, Puppet, SaltStack and HashiCorp Terraform. Each of these tools has its own way of defining infrastructure, and each allows an administrator to define a service without having to configure a physical infrastructure. These to...