--- title: "Infrastructure as Code" type: concept tags: [DevOps, 自动化, 配置管理] sources: [ctp-topic-70-eks-deployment-using-iac, learning-sessions-ecs-deployment-using-iac-20230808-183322-meeting-recording, ctp-topic-16-cross-account-terraform-modules, ctp-topic-12-using-ses-smtp-service-terraform-module, learning-sessions-cloud-transformation-programme-deploying-rds-via-terraform] last_updated: 2026-04-24 --- # Infrastructure as Code ## Overview Infrastructure as Code (IaC) 是一种通过代码定义和管理基础设施的方法,实现基础设施的标准化、可审计和可重复部署。 ## Core Principles - **声明式配置**:定义期望的状态,而非执行的具体步骤 - **版本控制**:所有基础设施配置纳入 Git 版本控制 - **自动化部署**:通过 CI/CD 流水线自动化执行部署 - **幂等性**:重复执行相同配置不产生副作用 ## Key Tools - **Terraform**:HashiCorp 的基础设施编排工具,支持多云 - **AWS CloudFormation**:AWS 原生的 IaC 服务 - **AWS Service Catalog**:AWS 的服务目录,封装标准化产品组合 - **Pulumi**:使用编程语言(Python, TypeScript 等)定义基础设施 ## Key Concepts - **HCL (HashiCorp Configuration Language)**:Terraform 的配置语言 - **State Management**:Terraform 使用 state 文件追踪资源 - **Modules**:可重用的基础设施组件 - **Remote State**:远程状态存储,支持团队协作 ## Related Concepts - [[Terraform]]:最流行的 IaC 工具之一 - [[AWS Service Catalog]]:AWS IaC 产品目录 - [[GitOps]]:基于 Git 的运维方法论 - [[CI/CD Pipeline]]:自动化部署流水线 - [[DevOps Culture]]:IaC 是 DevOps 实践的核心组成