Glossary · Automation software engineering and architecture
Infrastructure as code (IaC)
Also known as: IaC
German: Infrastruktur als Code (IaC)
In software engineering and IT operations, infrastructure as code (IaC) is the practice of defining and managing computing infrastructure, such as servers, networks, virtual machines, container platforms and their settings, through machine-readable definition files kept under version control, instead of manual configuration.
- Software engineering
In one sentence
Infrastructure as code defines servers, networks and platforms in version-controlled files instead of configuring them by hand.
Example
The edge cluster for a new production site is set up from the same IaC definitions as the existing sites, with only site-specific values changed.
How it applies
- Engineering: IaC tools apply definitions declaratively or procedurally and can recreate an environment reproducibly. Changes are reviewed and tested like code before being applied.
- Operation: IaC makes environments consistent across sites and speeds up recovery after hardware failure. Manual changes outside the definitions cause drift and should be detected and reconciled.
- Documentation: The definition files describe the actual infrastructure more reliably than separate diagrams, but they are not readable for everyone. Generate or maintain overview documentation from them, including network zones and data flows, and keep it versioned with the definitions.
Infrastructure as code vs. configuration as code
IaC describes the platform. Configuration as code describes the settings of applications running on it. Both rely on version control, reviews and automated deployment.
In OT environments, IaC is used mainly for IT-level and edge infrastructure; controller configurations are usually managed with vendor engineering tools, although many of the same principles apply.