基础设施即代码(Infrastructure as Code,IaC)是用代码文件描述服务器、网络、权限等基础设施,并让工具按代码自动创建和变更的做法。Terraform 是其中最常见的工具之一。
它的核心是“声明式”:你写清楚“我要什么”,而不是“先点哪个按钮”。比如一段配置声明:要 4 台 GPU 节点、一个私有网络、两个子网、一个对象存储桶,以及一个只能读该存储桶的 IAM 角色。Terraform 先执行 plan,告诉你将新增、修改、销毁哪些资源;你确认后再 apply,真正去云上执行。它还会维护一份状态文件(state),记录代码和现实资源的对应关系。重复执行结果一致,这叫幂等。
可以拿装修打比方。手点控制台像在现场口头指挥工人:“这里加插座,那里拆墙。”做完没有图纸,过两周没人说得清改了什么。IaC 是先出施工图,评审签字,按图施工;要改就改图纸,回滚就是退回旧图纸再施工。图纸进 Git,谁改的、为什么改、影响哪些房间,一目了然。
它和相邻概念不一样:
| 概念 | 主要管什么 |
|---|---|
| IaC / Terraform | 云资源本身:虚拟机、GPU 节点、网络、IAM |
| 配置管理(Ansible、Chef) | 机器内部:装驱动、改配置文件 |
| Kubernetes | 容器调度与编排 |
| CI/CD | 代码构建、测试、发布流程,常调用 IaC |
对 AI 从业者,IaC 的价值在 GPU 集群。手点容易出四种事故:节点规格不一致、权限给得过大、网络该通不通、环境无法重建。写成代码后,扩容走 Pull Request,谁能开哪类 GPU、哪个网段能访问、哪个角色能读训练数据,都在 diff 里被评审。出问题后,git revert 再 apply,比回忆“当时点了哪些按钮”可靠得多。对普通职场人,这意味着你用的 AI 服务背后资源可审计、可复现、可回收,减少“测试环境偷偷跑着昂贵 GPU”的浪费。
落地时建议:新资源先纳入 IaC,存量资源逐步导入;把 GPU 节点池、网络、IAM 封装成模块;密钥放密钥管理服务,不要硬编码;apply 前保留人工确认,操作留日志;状态文件要加锁和备份。Terraform 的具体语法、provider 支持和版本策略,以官方页面为准。
