1. 课程导论:什么是制品供应链、误差预算的概念、台账构建的目标与价值
1.1 制品供应链:从代码提交到生产部署的完整链路
在云原生与 DevOps 实践中,制品(Artifact) 是指从源代码经过编译、测试、打包、签名、扫描等环节后生成的、可直接部署或分发的二进制产物(如容器镜像、JAR 包、WAR 包、RPM 包、Helm Chart 等)。制品供应链 则描述了制品从诞生到消费的完整生命周期,包括构建、存储、分发、部署、运行时验证等关键阶段。
现代软件交付高度依赖自动化流水线,制品供应链的每个环节都可能引入风险:构建环境被篡改、依赖库存在漏洞、镜像签名失效、部署策略错误等。因此,我们需要对供应链进行全链路可观测,并建立量化的质量与可靠性度量体系。
核心观点: 制品供应链不仅是 CI/CD 流水线,更是从“代码信任”到“运行时信任”的传递链。任何环节的偏差都可能导致生产事故。
1.2 误差预算(Error Budget)的概念
误差预算 源自 Google SRE 实践,是服务等级目标(SLO)与服务质量之间的量化桥梁。其核心公式为:
Error Budget = 1 - SLO(以时间窗口计算,通常为 30 天)
例如,若某服务的 SLO 为 99.9%(月度可用性),则其月度误差预算为 0.1%,即约 43.2 分钟。在这 43.2 分钟内,服务可以出现故障、发布回滚、性能退化等事件,而不违反 SLO 承诺。
在制品供应链场景中,误差预算 被扩展为:
- 构建误差预算: 构建失败率、构建超时率、构建环境异常率。
- 扫描误差预算: 安全扫描超时、误报率、漏报率。
- 部署误差预算: 部署失败率、回滚率、金丝雀发布异常率。
- 运行时误差预算: 制品启动失败率、健康检查失败率、配置漂移率。
关键理解: 误差预算不是“允许犯错”,而是“量化风险容忍度”。当预算耗尽时,团队应暂停新功能发布,优先修复可靠性问题。
1.3 台账构建的目标与价值
制品供应链误差预算台账 是一份结构化的、可审计的、实时更新的数据记录,用于追踪供应链各环节的 SLO 达成情况、误差预算消耗速率、以及预算耗尽后的行动记录。其核心目标包括:
| 目标维度 | 具体描述 | 度量方式 |
|---|---|---|
| 可观测性 | 实时展示供应链各环节的 SLO 状态与预算余量 | 仪表盘 + 告警规则 |
| 可审计性 | 记录每次预算消耗的原因、时间、责任人 | 事件日志 + 变更记录 |
| 决策支持 | 当预算耗尽时,自动触发发布冻结或回滚策略 | 策略引擎 + 自动化流水线门禁 |
| 持续改进 | 通过趋势分析识别供应链薄弱环节 | 月度报告 + 复盘会议 |
台账构建的核心价值体现在以下三个方面:
- 从定性到定量: 将“供应链是否可靠”的主观判断,转化为基于 SLO 和误差预算的客观数据。
- 从被动到主动: 在预算耗尽前发出预警,避免突发性生产事故。
- 从孤岛到联动: 打通构建、安全、部署、运行时各团队的数据壁垒,形成统一的可靠性视图。
1.4 为什么选择 OpenTelemetry 作为技术底座
OpenTelemetry 提供统一的、厂商中立的遥测数据采集标准,天然适合构建跨环节的制品供应链可观测性:
- 统一数据模型: 使用相同的 Trace、Metric、Log 格式描述构建、部署、运行时行为。
- 上下文传播: 通过 Trace Context 将一次构建的制品 ID 与后续的部署、运行时调用链关联。
- 丰富的 SDK 与 Collector: 支持多种编程语言和基础设施,可嵌入 Jenkins、GitLab CI、ArgoCD 等工具。
- 可扩展性: 通过 Processor 和 Exporter 自定义 SLO 计算逻辑,直接输出误差预算数据。
注意: 本课程后续章节将深入讲解如何使用 OpenTelemetry 的 Trace 和 Metric API 采集供应链数据,并基于 OpenTelemetry Collector 的 Span Metrics Processor 和 Exemplar 机制实现误差预算的实时计算。