Infrastructure as Code (IaC) is a technology that allows teams to manage the configuration of cloud infrastructure such as servers, virtual machines, storage, and networks, in a declarative manner. “Declarative” means that engineers can write a simple text-based template defining what they want to deploy, and the IaC platform deploys it automatically, ensuring it is exactly the same every time.
Just like a DevOps team uses source code versioning and container images to manage the development process, IaC enables DevOps and cloud architecture teams to manage infrastructure at scale. An IaC template creates the same environment every time it is run. DevOps teams can continuously test and evolve their templates until they reach an optimal environment setup for the applications and resources they want to run.
IaC makes the environment part of a software release, managed as part of the CI/CD pipeline. Using IaC templates can help teams accelerate configuration and deployment of environments for cloud native applications, requiring less manual intervention for each release or new instance. The template, on its own, is sufficient to generate the environment and can be used to identify inefficiencies or insecure configurations, simplifying the iteration process to track improvements in performance and security.
Because IaC automates setup and tear-down of environments for dev, test, and production environments, it improves productivity for DevOps teams and enables fast deployments and more frequent release cycles.