3.1 基础设施即代码:IaC 核心概念与 Terraform 入门
1. 引言:从“点鼠标”到“敲代码”
在云原生之前的时代,如果你想申请一台服务器,流程大概是这样的:
- 填写一张 Excel 申请表发给运维部门。
- 运维小张登录阿里云控制台(Console)。
- 点击“创建实例”,选择 CPU、内存、带宽。
- 点击“下一步”,配置 VPC、安全组。
- 点击“确认购买”。
- 等待 5 分钟,IP 出来了,小张把 IP 填回 Excel 发给你。
这种方式叫ClickOps(点击运维)。它的问题显而易见:
- 慢:跨部门沟通效率低。
- 不可重复:如果要创建 100 台一样的机器,小张的手会断。
- 不可追溯:谁在什么时候改了安全组规则?没人知道。
IaC (Infrastructure as Code)的出现彻底改变了这一切。
它的理念是:用代码来定义基础设施,就像管理业务代码一样管理服务器。
本节我们将打开 IaC 的大门,认识该领域的绝对霸主 ——Terraform。
2. 理论深度解析:IaC 的核心哲学
IaC 不仅仅是写脚本,它是一套完整的工程方法论。
2.1 声明式(Declarative)vs 命令式(Imperative)
我们在 K8s 章节讲过这个概念,Terraform 也是彻底的