知识导图
IaC 基础设施即代码
Infrastructure as Code 核心理念:用代码定义和管理基础设施,而非手动操作。
| 原则 | 说明 |
|---|
| 版本控制 | 所有配置存储在 Git,变更可追溯 |
| 幂等性 | 多次执行同一配置,结果一致 |
| 可重复 | 同一套代码能创建完全相同的环境 |
| 自文档化 | 代码本身就是基础设施的文档 |
工具分类
| 配置管理 | 基础设施编排 |
|---|
| 用途 | 管理服务器软件/配置 | 创建/管理云资源 |
| 代表 | Ansible、Puppet | Terraform、Pulumi |
| 模型 | 命令式/声明式 | 声明式 |
| 运行方式 | Agent / Agentless | CLI |
| 状态 | 运行时检查 | 状态文件 |
配置管理工具对比
| Ansible | Puppet | SaltStack |
|---|
| 语言 | Python | Ruby | Python |
| 配置格式 | YAML | DSL | YAML |
| 架构 | Agentless (SSH) | Agent | Agent / Agentless |
| 学习曲线 | 低 | 高 | 中 |
| 适用 | 中小规模 | 大规模 | 大规模 |
学习路径
- IaC 理念:声明式、幂等性、版本控制
- Ansible:Playbook、Role、Inventory、变量
- Terraform:Provider、Resource、Module、State
- 进阶:Secret 管理、CI/CD 集成、多环境管理
相关链接