Show pageOld revisionsBacklinksAdd to bookExport to PDFODT exportBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== Infrastructure as Code (IaC) ====== [[dido:99_annexes:annex-b-terms-and-definitions:start|Go to Terms and Definitions]] ===== Discussion ===== Infrastructure as Code (IaC) applies software-engineering and [[dido:99_annexes:annex-b-terms-and-definitions:c:configuration_management|Configuration Management]] practices to the representation and control of [[dido:99_annexes:annex-b-terms-and-definitions:i:infrastructure|Infrastructure]]. IaC represents an [[dido:99_annexes:annex-b-terms-and-definitions:i:infrastructure_configuration|Infrastructure Configuration]] as one or more machine-processable [[dido:99_annexes:annex-b-terms-and-definitions:a:artifact|Artifacts]] that automated tools or workflows process without manual transcription. Infrastructure as Code can describe: * [[dido:99_annexes:annex-b-terms-and-definitions:i:infrastructure_resource|Infrastructure Resources]] * Configuration values * Relationships among Infrastructure Resources * Required inputs and parameters * Constraints * Dependencies * [[dido:99_annexes:annex-b-terms-and-definitions:b:baseline|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 [[dido:99_annexes:annex-b-terms-and-definitions:v:version_control|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 [[dido:99_annexes:annex-b-terms-and-definitions:i:infrastructure_environment|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: * [[dido:99_annexes:annex-b-terms-and-definitions:d:declarative_configuration|Declarative Configuration]] * 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 [[dido:99_annexes:annex-b-terms-and-definitions:i:infrastructure_configuration|Infrastructure Configuration]] as machine-processable [[dido:99_annexes:annex-b-terms-and-definitions:a:artifact|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, [[dido:99_annexes:annex-b-terms-and-definitions:t:traceability|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 [[dido:99_annexes:annex-b-terms-and-definitions:i:infrastructure_baseline|Infrastructure Baseline]] can contain IaC Artifacts that a deployment process realizes through a selected Provider Plugin and [[dido:99_annexes:annex-b-terms-and-definitions:d:deployment_platform|Deployment Platform]]. The term does not prescribe a configuration language, schema, file format, [[dido:99_annexes:annex-b-terms-and-definitions:v:version_control_system|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 [[dido:99_annexes:annex-b-terms-and-definitions:d:deployment_target|Deployment Target]]. ---- <WRAP centeralign> © 2026 Dido Solutions, Inc. and Jackrabbit Consulting, Inc. </WRAP> dido/99_annexes/annex-b-terms-and-definitions/i/iac.txt Last modified: 2026/07/24 00:12by nick_dido