Terraform
你可能会说
云上资源是点出来的,谁能记得当初怎么配的?
用代码声明基础设施声明式描述云资源,plan 预览变更、state 记录现状,可 review、可复用;状态文件管理是关键风险点。
也常被叫作IaC基础设施即代码
什么时候选它
- 多云 / 多环境的服务器、网络、数据库
- 基础设施要 review 和复现
- 团队要统一的 IaC 规范
什么时候别选
- 只有几台机器的手工环境
- 团队没有状态文件管理方案(会互相覆盖)
- 高频临时实验环境(成本高于收益)
容易混在一起 · 怎么分
Terraform≠Ansible
Terraform 管资源本身(声明式状态),Ansible 管机器内部配置(任务流)。
Terraform≠云控制台
代码可 review、可复现、可回滚;控制台点出来的资源没人说得清差异。
Q面试会问什么
- 问:plan 和 apply 的区别?
答:plan 对比 state、配置和真实资源生成变更预览;apply 执行变更并更新 state。 - 问:state 是什么?为什么重要?
答:记录已创建资源的 ID 和属性,丢失会导致重复创建或资源漂移;必须远程存储并加锁。
延伸阅读 · 权威出处