两层职责
基础设施即代码描述「需要存在哪些资源」:网络段、负载均衡、云主机规格与数量,工具负责创建、变更与销毁,并维护一份状态记录用于比对。运维自动化描述「这些资源上应该运行什么」:软件包版本、配置文件内容、服务状态、定时任务。前者的生命周期单位是资源,后者的生命周期单位是主机上的运行态。边界不清时,同一台主机可能被两套工具分别改写,造成资源反复被重建或配置被静默覆盖。
基本信息
| IaC 关注 | 资源的创建、拓扑关系与销毁 |
|---|---|
| 运维自动化关注 | 资源内部的软件与配置状态 |
| 共享输入 | 主机清单与资源标签 |
| 常见冲突点 | 资源被重建后配置资产仍指向旧实例 |
分工设计要点
- 资源归属唯一:一份资源只由一处定义,禁止在两套代码里同时声明。
- 标签即接口:IaC 输出统一标签或分组,配置管理按标签选择目标。
- 生命周期对齐:节点销毁前要能自动从配置管理清单中移除。
- 变更顺序明确:先建资源后配环境,先摘流量后销毁资源。
- 状态不交叉:不在配置管理里创建云资源,也不在 IaC 里执行软件安装。
- 重建保护:资源重建后自动触发一次完整的配置收敛。
职责对照
| 事项 | IaC 负责 | 运维自动化负责 |
|---|---|---|
| 网络与安全组 | 创建与规则定义 | 不涉及 |
| 云主机 | 数量、规格、生命周期 | 内部软件与配置 |
| 负载均衡后端 | 注册与摘除成员 | 健康检查参数调整 |
| 软件安装 | 不涉及 | 包管理与版本控制 |
| 配置文件 | 不涉及 | 渲染与收敛 |
| 资源销毁 | 执行销毁并释放 | 销毁前停止服务、摘流量 |
两者的交接点通常是标签与清单:IaC 打标签,配置管理按标签取目标。把交接做成自动同步,才能避免新节点长期未被配置管理纳管。
最危险的情况是两套工具都能改同一处:例如配置管理里创建安全组规则、IaC 里也定义同一安全组,任一侧执行都会覆盖另一侧,且双方报告都显示成功。