选型

Terraform

你可能会说

云上资源是点出来的,谁能记得当初怎么配的?

用代码声明基础设施声明式描述云资源,plan 预览变更、state 记录现状,可 review、可复用;状态文件管理是关键风险点。
也常被叫作IaC基础设施即代码
先问一句云资源要 review 和复现?
默认Terraform→擅长声明式 + plan→别用几台机器的手工环境
成熟度采用

什么时候选它

  • 多云 / 多环境的服务器、网络、数据库
  • 基础设施要 review 和复现
  • 团队要统一的 IaC 规范

什么时候别选

  • 只有几台机器的手工环境
  • 团队没有状态文件管理方案(会互相覆盖)
  • 高频临时实验环境(成本高于收益)
容易混在一起 · 怎么分
Terraform≠Ansible

Terraform 管资源本身(声明式状态),Ansible 管机器内部配置(任务流)。

Terraform≠云控制台

代码可 review、可复现、可回滚;控制台点出来的资源没人说得清差异。

Q面试会问什么

  • 问:plan 和 apply 的区别?
    答:plan 对比 state、配置和真实资源生成变更预览;apply 执行变更并更新 state。
  • 问:state 是什么?为什么重要?
    答:记录已创建资源的 ID 和属性,丢失会导致重复创建或资源漂移;必须远程存储并加锁。
延伸阅读 · 权威出处