# Infrastructure as Code

Record: `arch:infrastructure-as-code`
Kind: activity
Layer: [Resource Core](https://banes-lab.com/records/layer/resource-core.md)
Severity: mandatory for managed infrastructure
Scope: infrastructure, deployment
Aliases: IaC
Canonical: https://banes-lab.com/ontology#arch-infrastructure-as-code

## Repair

- Refactored by: Codify Resource, Import State
- Detected by: drift between code and live infra
- Violated by: untracked manual infra mutation
- Measured by: drift count, IaC coverage
- Enforced by: [policy-as-code](https://banes-lab.com/records/arch/policy-as-code.md), drift detection

## requires

- [Declarative Configuration](https://banes-lab.com/records/arch/declarative-configuration.md)
- [Version Control](https://banes-lab.com/records/lex/version-control.md)

## reinforces

- [Reproducibility](https://banes-lab.com/records/arch/reproducibility.md)
- [Governance](https://banes-lab.com/records/arch/governance.md)

## enables

- [Automated Provisioning](https://banes-lab.com/records/lex/automated-provisioning.md)

## conflicts-with

- [Manual Infrastructure Changes](https://banes-lab.com/records/lex/manual-infrastructure-changes.md)

## tensions-with

- [Tooling Complexity](https://banes-lab.com/records/lex/tooling-complexity.md)

## tensions

- [Infrastructure as Code Tooling Complexity](https://banes-lab.com/records/tension/infrastructure-as-code-tooling-complexity.md)

## referenced-by

- [Declarative Configuration](https://banes-lab.com/records/arch/declarative-configuration.md)
- [Environment Parity](https://banes-lab.com/records/arch/environment-parity.md)
- [Immutable Infrastructure](https://banes-lab.com/records/arch/immutable-infrastructure.md)
