Skip to main content

Infrastructure as Code

TL;DR;

Infrastructure as Code (IaC) enables IT teams to programmatically manage and provision infrastructure through code. It enhances consistency, efficiency and reliability in infrastructure management and allows infrastructure to adapt to application changes.

Definition

Infrastructure as Code (IaC) is the management of infrastructure (networks, virtual machines, load balancers, and connection topology) in a descriptive model, using the same versioning as DevOps team uses for source code. Like the principle that the same source code generates the same binary, an IaC model generates the same environment every time it is applied.

Goals

  • Treat infrastructure as software - can be versioned, tested and deployed
  • Automation of infrastructure provisioning
  • Increased consistency and reduced mistakes from manual processes
  • Faster setup and configuration of infrastructure
  • Easier management of infrastructure changes

Practices

  • Using a high-level descriptive coding language to define infrastructure
  • Storing infrastructure code in a version control system
  • Treating infrastructure code like application code with testing and deployment processes
  • Using tools like Terraform, Ansible, Chef etc. to provision and manage infrastructure