5.3 基础设施即代码(IaC)规范
一、适用范围与目标
- 适用于Terraform、Pulumi、Ansible、Helm等IaC工具的基础设施自动化管理。
- 目标:实现基础设施自动化、标准化、可追溯、可回滚。
二、管理目标
- 目录结构、命名、变量、模块标准化
- 代码变更可审计、可回滚、可复用
- 敏感信息安全管理,合规可追溯
三、详细规范
- 目录结构:统一modules、environments、scripts等目录,便于复用与治理
- 命名规范:资源、变量、模块命名统一,便于自动化与排查
- 变量与参数:集中管理,支持多环境覆盖,敏感参数加密存储(如Vault、SOPS)
- 代码管理:纳入Git版本控制,分支策略(如main/dev/feature),变更需评审与自动化测试
- 部署与回滚:自动化部署流程,支持dry-run、回滚机制,变更记录与审计
- 工具与最佳实践:推荐Terraform、Pulumi、Ansible、Helm,代码复用、模块化、文档化
四、操作流程
- IaC代码开发 → 代码评审 → 测试 → 合并主干 → 自动化部署
- 变更申请 → 审批 → 部署 → 验证 → 回滚(如需)
- 定期代码审计与模块优化
五、实际案例
- 新增VPC、子网、ECS等资源,全部通过Terraform模块化管理
- 生产环境IaC变更,先dry-run验证,审批后上线,异常时一键回滚
- 敏感变量如数据库密码通过Vault加密注入,未出现在代码库
六、目录结构模板
infra/
├── modules/
├── environments/
├── scripts/
├── main.tf
├── variables.tf
└── README.md
七、注意事项
- 禁止硬编码敏感信息,禁止无评审直接上线
- 变更需全链路留痕,回滚流程需验证
- IaC代码需定期重构与模块化优化
八、参考资料
- 《Terraform最佳实践》
- 《基础设施即代码白皮书》
- 团队内部IaC开发手册