Infrastructure as code (IaC) is the process of managing and provisioning computer resources through machine-readable definition files, rather than physical hardware configuration or interactive configuration tools.

I mentioned IaC in my previous post: DevOps question. In that example, I noticed most people tend to select “DevOps” first, and then “IaC”. In a broader sense, both DevOps and IaC are right answers. However, in that particular scenario, software defined networking (SDN) is a specific type of IaC that solves the specific problem it states.

IaC allows infrastructure resources be in the hands of developers and engineers and their provisioning are done automatically and consistently. The advantages are: velocity of change (more speed), overhead reduction (lower cost), and stack integrity control (less risks). This is why IaC is the fabric of DevOps.

Some typical IaC choices:

  • Chef
  • Puppet
  • Red Hat Ansible Automation Platform
  • Saltstack
  • Terraform 
  • AWS CloudFormation