1. 课程导论:什么是制品供应链、误差预算(Error Budget)与SLO/SLI的关系、为什么需要Terraform编排监控资源栈
1.1 制品供应链:从代码到可部署产物的全链路
在云原生与 DevOps 实践中,制品供应链(Artifact Supply Chain) 指从源代码提交开始,经过构建、测试、扫描、签名、存储,最终将可部署的二进制或容器镜像交付到生产环境的完整链路。每一个环节都会产生元数据、版本标签和校验信息,形成一条可追溯的“制品血缘”。
核心制品类型: Docker 镜像、Helm Chart、JAR/WAR 包、npm 包、Python Wheel、OCI 制品。
制品供应链的典型阶段如下表所示:
| 阶段 | 关键动作 | 产出物 |
|---|---|---|
| 代码提交 | Git push / PR merge | 源码版本标签 |
| 持续集成 | 编译、单元测试、代码扫描 | 构建产物(.jar / .bin) |
| 制品仓库 | 版本管理、签名、元数据索引 | 不可变制品 + 摘要 |
| 安全扫描 | 漏洞扫描、SBOM 生成 | 安全报告 + 许可清单 |
| 部署编排 | 环境映射、配置注入 | 可部署清单 |
1.2 误差预算(Error Budget)与 SLO/SLI 的关系
服务等级指标(SLI) 是衡量服务质量的量化指标,例如请求延迟 P99、错误率、可用性百分比。服务等级目标(SLO) 是为 SLI 设定的目标阈值,例如“99.9% 的请求延迟低于 200ms”。误差预算(Error Budget) 定义为 1 - SLO,代表服务在给定时间窗口内允许失效的“额度”。
核心公式: Error Budget = 100% − SLO(例如 SLO = 99.9%,则 Error Budget = 0.1%)。
若月度总请求数为 1,000,000,则允许失效的请求数为 1,000,000 × 0.1% = 1,000 次。
若月度总请求数为 1,000,000,则允许失效的请求数为 1,000,000 × 0.1% = 1,000 次。
三者的关系可以用下表清晰表达:
| 概念 | 定义 | 示例 | 用途 |
|---|---|---|---|
| SLI | 实际测量的服务质量指标 | 请求成功率 99.95% | 反映真实运行状态 |
| SLO | 为目标设定的阈值 | 请求成功率 ≥ 99.9% | 定义可靠性承诺 |
| Error Budget | 允许失效的额度 | 0.1% 的请求可失败 | 平衡可靠性与迭代速度 |
误差预算的消耗与恢复直接影响制品供应链的发布决策:
- 预算充足(消耗 < 100%):可以继续发布新版本,推进功能迭代。
- 预算耗尽(消耗 ≥ 100%):应暂停非关键发布,优先进行稳定性修复。
- 预算恢复:通过优化代码、扩容或回滚,使 SLI 重新达标,预算逐步恢复。
1.3 为什么需要 Terraform 编排监控资源栈
制品供应链的误差预算台账需要实时、准确的监控数据支撑。传统手动搭建监控栈的方式存在以下痛点:
- 配置漂移:手动创建告警规则、仪表盘容易与环境实际状态不一致。
- 重复劳动:每接入一个新服务或新环境,都需要重复配置 Prometheus、Grafana、Alertmanager。
- 版本不可控:监控配置缺乏版本管理,难以回滚或审计。
- 供应链割裂:制品版本、部署时间、运行时指标之间缺乏关联,无法计算误差预算消耗。
关键挑战: 误差预算台账要求监控配置与制品版本、部署环境严格对应。手动配置几乎无法保证这种对应关系的持续一致性。
Terraform 作为基础设施即代码(IaC)工具,能够将监控资源栈的声明式配置纳入版本控制,实现以下核心价值:
| 能力 | 说明 | 对误差预算的收益 |
|---|---|---|
| 声明式配置 | 用 HCL 定义 Prometheus 规则、Grafana 仪表盘、告警通道 | 监控配置与制品版本同步 |
| 状态管理 | 通过 state 文件追踪实际资源状态 | 消除配置漂移,确保 SLI 采集准确 |
| 模块化复用 | 封装监控模块,多环境复用 | 快速接入新服务,统一误差预算计算口径 |
| 自动化编排 | 与 CI/CD 流水线集成,自动部署监控栈 | 制品发布时自动更新对应监控规则 |
| 版本回滚 | 通过 Git 历史快速回退监控配置 | 误差预算台账可追溯历史变更 |
1.4 本课程的核心目标
通过本课程,你将掌握如何利用 Terraform 构建一套完整的监控资源栈,专门用于追踪制品供应链的误差预算台账。课程覆盖以下关键能力:
- 设计制品供应链的 SLI 指标体系:定义构建成功率、部署延迟、运行时错误率等关键指标。
- 使用 Terraform 声明式部署 Prometheus + Grafana + Alertmanager:实现监控栈的自动化编排。
- 创建误差预算计算规则:在 Prometheus 中通过记录规则实时计算 Error Budget 消耗。
- 构建 Grafana 误差预算仪表盘:可视化展示预算消耗趋势、SLO 达标状态。
- 配置基于误差预算的告警:在预算耗尽或快速消耗时自动触发通知。
- 将监控栈纳入制品供应链 CI/CD 流水线:实现监控配置与制品版本的联动更新。
前置知识建议: 了解基本 Terraform 语法(resource、data、module)、熟悉 PromQL 基础查询、具备 Git 版本控制经验。本课程会提供完整的代码示例和模块封装。