在传统小规模环境里,很多事可以靠经验顶住:
- 服务器多开一台
- 手动配个 Nginx
- 安全组开个口
- 数据库建个实例
- 负载均衡挂一下
- 域名指过去
但一旦进入云原生和多环境协作时代,这种方式会越来越危险。
因为现代软件城市有几个特点:
- 资源多
- 环境多
- 团队多
- 变更频繁
- 合规要求高
- 审计要求高
- 灾难恢复要求高
这时候最大的问题不是“会不会建”。
最大的问题是:
你能不能把“怎么建、建成什么样、变更会影响什么、如何回到上一版”全部说清楚。
Terraform 的回答非常直接:
把基础设施定义成代码。
也就是大家熟悉的:
Infrastructure as Code,IaC。
翻成城市语言就是:
施工不再靠口头转述,而是靠正式蓝图。