CIQ Glossary

Infrastructure as Code (IaC)

Infrastructure as code (IaC) is the practice of managing and provisioning IT infrastructure through machine-readable definition files or scripts rather than through manual hardware configuration or interactive tools. Its core principle is to treat infrastructure the way software is treated: definitions can be written, tested, shared, and version-controlled, enabling rapid, consistent, and repeatable deployment of environments. IaC lets teams automate provisioning and manage systems and their configuration reliably at scale.

Why infrastructure as code matters

Managing infrastructure by hand is slow, hard to reproduce, and prone to drift, the gradual accumulation of small, undocumented differences between systems that are supposed to be identical. IaC replaces that with defined, repeatable automation, delivering several benefits:

  • Consistency and repeatability: the same definition produces the same environment every time, removing manual configuration error.
  • Speed and efficiency: a complete environment can be stood up by running a script, in a fraction of the time manual setup takes.
  • Reduced risk: because changes are version-controlled, they can be reviewed and rolled back if a problem appears.
  • Built-in documentation: the code itself describes the system, helping new team members understand its architecture.
  • Scalability: IaC supports distributed systems and microservices and makes scaling infrastructure up or down straightforward.

These properties make IaC a natural fit for cluster and cloud environments, where many compute nodes must be configured identically and elastic patterns such as cloud bursting depend on resources being created and destroyed automatically.

Declarative vs. imperative approaches

IaC tools follow one of two models for describing infrastructure:

Declarative Imperative
You specify The desired end state The steps to reach it
Focus What the result should be How to get there
Behavior The tool determines how to achieve the state You issue explicit ordered commands

Declarative approaches are common because the tool reconciles the current state toward the desired state, but imperative approaches offer fine-grained control over each step.

Immutable vs. mutable infrastructure

IaC also supports two strategies for handling change. In immutable infrastructure, a deployed component is never modified in place; when a change is needed, it is replaced with a new instance. This avoids configuration drift and keeps environments consistent. In mutable infrastructure, changes are applied to existing components. That can be simpler for small deployments, but it reintroduces the risk of drift as differences accumulate over time. Many modern IaC workflows favor immutability precisely to preserve the consistency that motivated adopting infrastructure as code in the first place.

Built for scale. Chosen by the world’s best.

2.75M+

Rocky Linux instances

Being used world wide

90%

Of fortune 100 companies

Use CIQ supported technologies

250k

Avg. monthly downloads

Rocky Linux