What is Infrastructure as Code?
Infrastructure as Code (IaC) is an approach that takes proven coding techniques used by software systems and extends it to infrastructure. It is one of the key DevOps practices that enable teams to deliver infrastructure, and the software running on it, rapidly and reliably, at scale.
One can go even further and say that is the practice of describing all software runtime environment and networking settings and parameters in simple textual format, that can be stored in your Version Control System (VCS) and versioned on request. These text files are called manifests and are used by DevOps tools like Terraform and Kubernetes to automatically provision and configure build servers, testing, staging and production environments.
Most importantly, all these operations are traceable through the VCS, which ensures the removal of decades-old “works fine on my computer” problem, where the code that worked in testing does not work in production. IaC ensures continuity, as all the environments are provisioned and configured automatically, with no room for human error, which greatly speeds up and simplifies the software development and infrastructure operations.
Teams that implement IaC deliver faster, more predictable and at scale. They can represent the desired states of their environments in code, while avoiding configuration drift and incorrect dependencies. IaC approach ensures repeatable deployments and DevOps teams receive a unified set of tools to help them deploy quicker, error-proof and at large scale.