--- title: "Infrastructure as Code" type: concept tags: - IaC - DevOps - Cloud sources: - ctp-topic-48-terraform-vs-terragrunt.md - [[learning-sessions-cloud-transformation-programme-20230808-183322-meeting-recordi]] last_updated: 2026-05-15 --- ## Definition Infrastructure as Code(IaC)是通过代码定义和管理基础设施的实践,实现基础设施的版本控制、自动化部署和一致性管理,而非手动配置。 ## Key Characteristics - **声明式配置**:定义期望的最终状态,而非步骤 - **版本控制**:所有基础设施定义纳入 Git 管理 - **幂等性**:重复执行产生相同结果 - **自动化**:与 CI/CD 流程深度集成 ## Core Tools - [[Terraform]] — 云无关的 IaC 工具 - [[Terragrunt]] — Terraform 的 DRY 包装器 - AWS CloudFormation — AWS 原生 IaC - Pulumi — 编程语言驱动的 IaC - Ansible — 配置管理工具 ## Connections - [[Terraform]] ← implements ← [[InfrastructureAsCode]] - [[Terragrunt]] ← extends ← [[Terraform]](多环境管理) - [[Atlantis]] ← enables ← [[GitOps]](PR 驱动的 IaC 部署)