单人练习时,本地 terraform.tfstate 还能接受。
团队协作时,这种方式几乎一定会出问题。
因为会出现:
- A 同学 state 是旧的
- B 同学本地也有一份 state
- 两个人同时 apply
- 结果档案冲突
- 资源漂移
- 甚至误删
所以现代团队的主路径几乎都是:
远程 state + locking。
常见方案包括:
- Terraform Cloud / HCP Terraform
- S3 + DynamoDB Lock(旧主流组合)
- 云厂商对象存储 + 锁机制
- 企业内部状态托管平台
城市比喻里,这很好理解:
个人电脑里的 state
= 某个工头把全城施工档案揣自己包里
远程 state
= 总工局统一档案馆
state lock
= 当前有人在改总图时,其他人先别同时动笔这就是为什么 state 后端不是“部署细节”。
它是团队协作制度的一部分。