IaC对可重现、可审计的基础设施至关重要。测试你能否以与应用代码同样的严谨性管理基础设施。
定义IaC并解释优势:版本控制、可重现性、自动化。
讨论你用过的工具。
覆盖最佳实践:状态管理、模块化、测试。
分享实际例子。
基础设施即代码是通过声明式配置文件而非手动操作来定义基础设施。这带来版本控制、同行评审、可重现性和自动化。我主要使用Terraform,远程状态存在S3,DynamoDB做锁。代码组织成可复用模块——VPC模块、ECS服务模块、数据库模块——各有自己的测试。所有变更通过PR评审和plan输出后才apply。我还用Terragrunt管理多环境减少重复。我将整个AWS基础设施从手动操作迁移到Terraform——跨3个环境150+资源。环境搭建时间从2天降到15分钟,消除了配置漂移。
提到状态管理——这是Terraform最棘手的部分。
讨论漂移检测和修复。
展示你用与应用代码同等的质量标准对待基础设施代码。
Terraform云无关且社区更大。CloudFormation是AWS原生集成更好。100%AWS用CloudFormation;多云或要灵活性用Terraform。
静态分析(tflint、checkov)、plan评审、部署到临时环境的集成测试、策略即代码(OPA/Sentinel)做合规检查。
永远不要在IaC文件中存储密钥。使用AWS Secrets Manager、HashiCorp Vault或SOPS。通过ARN或路径引用密钥,而非值。