Infrastructure as Code (IaC)
Discussion
Infrastructure as Code (IaC) applies software-engineering and Configuration Management practices to the representation and control of Infrastructure.
IaC represents an Infrastructure Configuration as one or more machine-processable Artifacts that automated tools or workflows process without manual transcription.
Infrastructure as Code can describe:
-
Configuration values
-
Relationships among Infrastructure Resources
-
Required inputs and parameters
-
Constraints
-
Dependencies
-
Baseline references
-
Provider configuration
-
Security configuration
-
Monitoring configuration
-
Lifecycle behavior
-
Required or observed infrastructure state
Automated tools use IaC Artifacts to perform or support activities such as:
-
Provisioning Infrastructure Resources
-
Configuring Infrastructure Resources
-
Modifying Infrastructure Resources
-
Verifying Infrastructure Configuration
-
Removing Infrastructure Resources
-
Comparing required and observed infrastructure state
Infrastructure as Code commonly uses Version Control to identify, retrieve, compare, and manage revisions of IaC Artifacts.
Infrastructure as Code differs from a manually executed infrastructure procedure:
-
Infrastructure as Code provides a machine-processable representation of Infrastructure Configuration
-
A manually executed procedure depends on a person to interpret and perform procedural instructions
Infrastructure as Code also differs from an Infrastructure Environment:
-
Infrastructure as Code represents Infrastructure Configuration
-
An Infrastructure Environment is the operational or development context described, created, modified, or managed through that configuration
Infrastructure as Code can use:
-
Procedural configuration
-
A combination of declarative and procedural configuration
A Declarative Configuration specifies a required result without prescribing the sequence of procedural steps used to produce that result.
Definition
practice of representing and controlling Infrastructure Configuration as machine-processable Artifacts that automated tools or workflows process
Source
-
Dido Solutions, Inc. and Jackrabbit Consulting, Inc.
-
Generalized from infrastructure automation, software configuration management, cloud computing, and DevOps usage
Note
Infrastructure as Code identifies an engineering approach rather than a particular language, tool, provider, or file format.
Infrastructure as Code does not by itself establish:
-
Configuration approval
-
Deployment authorization
-
Configuration validity
-
Revision retention
-
Infrastructure compliance
-
Successful deployment
-
Repeatable execution
-
Change governance
Separate requirements and processes govern those characteristics.
Version control, review, validation, testing, Traceability, repeatable execution, and controlled change strengthen the governance and reliability of Infrastructure as Code but do not define whether a machine-processable Infrastructure Configuration is IaC.
Within Crucible, an Infrastructure Baseline can contain IaC Artifacts that a deployment process realizes through a selected Provider Plugin and Deployment Platform.
The term does not prescribe a configuration language, schema, file format, Version Control System, provisioning tool, cloud provider, virtualization platform, container platform, or operating system.
Example
An IaC Artifact specifies the compute nodes, virtual networks, storage resources, security rules, and load balancer required for an Infrastructure Environment.
An automated deployment workflow processes the Artifact and realizes the specified Infrastructure Resources on the selected Deployment Target.
© 2026 Dido Solutions, Inc. and Jackrabbit Consulting, Inc.