| Both sides previous revision Previous revision | |
| public:99_annexes:annex-b-terms-and-definitions:i:iac [2026/09/12 17:42] – ↷ Page moved from private:99_annexes:annex-b-terms-and-definitions:i:iac to public:99_annexes:annex-b-terms-and-definitions:i:iac nick_dido | public:99_annexes:annex-b-terms-and-definitions:i:iac [2026/09/12 17:43] (current) – ↷ Links adapted because of a move operation nick_dido |
|---|
| ====== Infrastructure as Code (IaC) ====== | ====== Infrastructure as Code (IaC) ====== |
| |
| [[private:99_annexes:annex-b-terms-and-definitions:start|Go to Terms and Definitions]] | [[public:99_annexes:annex-b-terms-and-definitions:start|Go to Terms and Definitions]] |
| |
| ===== Discussion ===== | ===== Discussion ===== |
| |
| Infrastructure as Code (IaC) applies software-engineering and [[private:99_annexes:annex-b-terms-and-definitions:c:configuration_management|Configuration Management]] practices to the representation and control of [[private:99_annexes:annex-b-terms-and-definitions:i:infrastructure|Infrastructure]]. | Infrastructure as Code (IaC) applies software-engineering and [[public:99_annexes:annex-b-terms-and-definitions:c:configuration_management|Configuration Management]] practices to the representation and control of [[public:99_annexes:annex-b-terms-and-definitions:i:infrastructure|Infrastructure]]. |
| |
| IaC represents an [[private:99_annexes:annex-b-terms-and-definitions:i:infrastructure_configuration|Infrastructure Configuration]] as one or more machine-processable [[private:99_annexes:annex-b-terms-and-definitions:a:artifact|Artifacts]] that automated tools or workflows process without manual transcription. | IaC represents an [[public:99_annexes:annex-b-terms-and-definitions:i:infrastructure_configuration|Infrastructure Configuration]] as one or more machine-processable [[public:99_annexes:annex-b-terms-and-definitions:a:artifact|Artifacts]] that automated tools or workflows process without manual transcription. |
| |
| Infrastructure as Code can describe: | Infrastructure as Code can describe: |
| |
| * [[private:99_annexes:annex-b-terms-and-definitions:i:infrastructure_resource|Infrastructure Resources]] | * [[public:99_annexes:annex-b-terms-and-definitions:i:infrastructure_resource|Infrastructure Resources]] |
| * Configuration values | * Configuration values |
| * Relationships among Infrastructure Resources | * Relationships among Infrastructure Resources |
| * Constraints | * Constraints |
| * Dependencies | * Dependencies |
| * [[private:99_annexes:annex-b-terms-and-definitions:b:baseline|Baseline]] references | * [[public:99_annexes:annex-b-terms-and-definitions:b:baseline|Baseline]] references |
| * Provider configuration | * Provider configuration |
| * Security configuration | * Security configuration |
| * Comparing required and observed infrastructure state | * Comparing required and observed infrastructure state |
| |
| Infrastructure as Code commonly uses [[private: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 commonly uses [[public: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 differs from a manually executed infrastructure procedure: |
| * A manually executed procedure depends on a person to interpret and perform procedural instructions | * A manually executed procedure depends on a person to interpret and perform procedural instructions |
| |
| Infrastructure as Code also differs from an [[private:99_annexes:annex-b-terms-and-definitions:i:infrastructure_environment|Infrastructure Environment]]: | Infrastructure as Code also differs from an [[public:99_annexes:annex-b-terms-and-definitions:i:infrastructure_environment|Infrastructure Environment]]: |
| |
| * Infrastructure as Code represents Infrastructure Configuration | * Infrastructure as Code represents Infrastructure Configuration |
| Infrastructure as Code can use: | Infrastructure as Code can use: |
| |
| * [[private:99_annexes:annex-b-terms-and-definitions:d:declarative_configuration|Declarative Configuration]] | * [[public:99_annexes:annex-b-terms-and-definitions:d:declarative_configuration|Declarative Configuration]] |
| * Procedural configuration | * Procedural configuration |
| * A combination of declarative and procedural configuration | * A combination of declarative and procedural configuration |
| ===== Definition ===== | ===== Definition ===== |
| |
| //practice of representing and controlling [[private:99_annexes:annex-b-terms-and-definitions:i:infrastructure_configuration|Infrastructure Configuration]] as machine-processable [[private:99_annexes:annex-b-terms-and-definitions:a:artifact|Artifacts]] that automated tools or workflows process// | //practice of representing and controlling [[public:99_annexes:annex-b-terms-and-definitions:i:infrastructure_configuration|Infrastructure Configuration]] as machine-processable [[public:99_annexes:annex-b-terms-and-definitions:a:artifact|Artifacts]] that automated tools or workflows process// |
| |
| ===== Source ===== | ===== Source ===== |
| Separate requirements and processes govern those characteristics. | Separate requirements and processes govern those characteristics. |
| |
| Version control, review, validation, testing, [[private: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. | Version control, review, validation, testing, [[public: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 [[private: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 [[private:99_annexes:annex-b-terms-and-definitions:d:deployment_platform|Deployment Platform]]. | Within Crucible, an [[public: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 [[public:99_annexes:annex-b-terms-and-definitions:d:deployment_platform|Deployment Platform]]. |
| |
| The term does not prescribe a configuration language, schema, file format, [[private: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. | The term does not prescribe a configuration language, schema, file format, [[public: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 ===== | ===== Example ===== |
| An IaC Artifact specifies the compute nodes, virtual networks, storage resources, security rules, and load balancer required for an Infrastructure Environment. | 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 [[private:99_annexes:annex-b-terms-and-definitions:d:deployment_target|Deployment Target]]. | An automated deployment workflow processes the Artifact and realizes the specified Infrastructure Resources on the selected [[public:99_annexes:annex-b-terms-and-definitions:d:deployment_target|Deployment Target]]. |
| |
| ---- | ---- |