34 lines
1.1 KiB
Markdown
34 lines
1.1 KiB
Markdown
---
|
||
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 部署)
|