1. 课程导论
1.1 从基础设施代码化到可观测性
基础设施即代码(IaC)已经成为现代运维的基石。Terraform、Pulumi、CloudFormation 等工具将云资源的管理从手动点击转变为声明式代码提交。然而,代码提交只是起点——真正决定 IaC 可靠性的,是变更在生产环境中的实际表现。
为了量化这种表现,SRE 领域引入了 服务等级指标(SLI)。当 SLI 应用于 IaC 变更时,我们关注的是:一次代码合并到资源生效,其成功率、延迟和覆盖率是否达到预期。
核心定义: IaC 变更 SLI 是指从 IaC 代码提交(Commit)到目标基础设施状态收敛(Convergence)过程中,针对变更操作本身定义的可量化测量指标。它不同于传统的应用层 SLI(如请求延迟),而是聚焦于“变更”这一运维动作的健康度。
1.2 什么是口径漂移?
口径漂移(Metric Drift)是指:同一个 SLI 指标,在采集、计算或聚合过程中,因统计口径不一致导致数值出现系统性偏差的现象。在 IaC 场景中,口径漂移通常发生在以下三个环节:
- 采集层漂移: 不同工具(如 Terraform Cloud 与 Atlantis)对“变更成功”的定义不同(有的以 Plan 成功为准,有的以 Apply 完成为准)。
- 计算层漂移: 同一指标在不同时间窗口(如 5 分钟 vs 1 小时)或不同聚合方式(平均值 vs P95)下产生差异。
- 标签层漂移: 资源标签(如环境、团队)在 IaC 代码中被修改或删除,导致历史数据与当前数据无法对齐。
| 漂移类型 | 典型表现 | 影响范围 |
|---|---|---|
| 采集口径漂移 | 同一变更在 CI/CD 日志与云 API 中记录的状态不一致 | 单次变更的 SLI 失真 |
| 计算口径漂移 | 周报与日报的“变更成功率”相差 5% 以上 | 长期趋势误判 |
| 标签口径漂移 | 资源归属团队变更后,旧标签数据被归入“未知” | 归因分析失效 |
常见误区: 很多团队将口径漂移等同于“数据错误”。实际上,口径漂移往往是隐性的——数据本身没有错,只是统计的“尺子”变了。校准的目标不是修复数据,而是统一这把尺子。
1.3 为什么需要校准?
未经校准的 IaC 变更 SLI 会带来三个层面的风险:
- 决策误导: 管理层基于漂移后的数据判断“变更质量下降”,实际可能是统计窗口从 1 天改为了 1 小时。
- 告警疲劳: 口径漂移导致 SLI 阈值频繁误触发,SRE 团队逐渐忽略真实告警。
- 审计失效: 合规审计要求“变更成功率 > 99.9%”,但漂移后的数据无法提供可追溯的证明。
校准的核心价值在于:让 SLI 成为可信任的决策依据,而非数字游戏。通过建立口径基线、对齐采集逻辑、固化计算规则,使不同团队、不同工具、不同时间窗口下的 SLI 具备可比性。
1.4 课程目标与受众
本课程面向以下三类角色,提供从理论到落地的完整方案:
- SRE / 平台工程师: 需要设计 IaC 变更的可观测性体系,并解决口径不一致导致的误报问题。
- DevOps 负责人: 需要建立团队级的变更 SLI 标准,确保跨团队数据可比。
- 可观测性工程师: 负责维护监控系统,需要校准 Prometheus、Datadog 等工具中的 IaC 指标。
完成本课程后,你将能够:
- 识别 IaC 变更 SLI 中的三类口径漂移。
- 使用 Terraform Provider 与 OpenTelemetry 构建统一的采集层。
- 通过 SLI 口径基线文档固化校准规则。
- 在 Grafana 中建立抗漂移的 SLI 仪表盘。
1.5 IaC 变更 SLI 口径漂移全景图
下图展示了从 IaC 代码提交到 SLI 展示的完整链路,以及口径漂移可能发生的节点:
课程提示: 全景图中的“口径基线文档”是校准的核心产出。后续章节将详细讲解如何编写这份文档,以及如何通过 IaC 代码自动校验口径一致性。
1.6 课程结构速览
本课程共 30 章,分为四个模块:
- 模块一(第 1-5 章): 概念与诊断——识别口径漂移的根因。
- 模块二(第 6-15 章): 采集层校准——统一 Terraform、Pulumi、Crossplane 的 SLI 输出。
- 模块三(第 16-25 章): 计算层与标签层校准——使用 OpenTelemetry 与 Prometheus 实现口径对齐。
- 模块四(第 26-30 章): 自动化与治理——通过 IaC 策略即代码(Policy as Code)固化校准规则。
现在,让我们进入第 2 章,开始诊断你的 IaC 变更 SLI 是否存在口径漂移。