1. 课程导论与背景:制品供应链误差预算的概念、为什么需要自动化台账、Terraform 在其中的角色
1.1 制品供应链误差预算:从 SLA 到 SLO 再到误差预算
在云原生与 DevOps 实践中,误差预算(Error Budget) 是服务等级目标(SLO)与可用性之间的量化缓冲。将这一概念引入制品供应链(Artifact Supply Chain),意味着我们不再仅关注“制品是否构建成功”,而是度量整个交付链的可靠性余量。
| 概念 | 定义 | 在制品供应链中的映射 |
|---|---|---|
| SLA | 服务等级协议(对外承诺) | 制品交付时效、签名验证通过率 |
| SLO | 服务等级目标(内部目标) | 构建成功率 ≥ 99.9%、SBOM 生成覆盖率 ≥ 95% |
| 误差预算 | 100% − SLO(可容忍的失败时间/次数) | 每月允许的构建失败次数、签名超时次数 |
关键洞察: 误差预算不是“失败配额”,而是风险容量。当制品供应链的误差预算耗尽时,应自动冻结高风险变更,直到可靠性恢复。
1.2 为什么需要自动化台账?
传统制品管理依赖手动记录或半自动化看板,存在三大致命缺陷:
- 数据滞后: 构建失败、签名过期、漏洞扫描结果无法实时反映在台账中。
- 审计盲区: 谁在什么时间、因为什么原因消耗了误差预算,缺乏不可篡改的记录。
- 响应迟钝: 误差预算耗尽时,无法自动触发阻断或回滚动作。
自动化台账 通过基础设施即代码(IaC)将台账定义为可编程资源,实现:
- 每次制品发布自动记录 SLO 达标状态
- 误差预算消耗实时累加并可视化
- 预算耗尽时自动触发告警或策略执行
实践建议: 将误差预算台账视为“供应链的监控仪表盘”,而非静态文档。自动化台账是连接 CI/CD 事件与可靠性治理的桥梁。
1.3 Terraform 在其中的角色
Terraform 作为业界主流的 IaC 工具,在本课程中承担三层核心职责:
| 职责层 | 具体作用 | Terraform 资源示例 |
|---|---|---|
| 台账基础设施 | 声明式定义数据库、存储桶、API 网关等台账后端 | aws_dynamodb_table、google_bigquery_dataset |
| 策略即代码 | 将误差预算阈值、耗尽策略编码为 Terraform 资源 | aws_cloudwatch_metric_alarm、opentofu_decision |
| 供应链集成 | 通过 Provider 对接 CI/CD、签名服务、SBOM 生成器 | github_actions_secret、sigstore_cosign_key |
使用 Terraform 管理误差预算台账,意味着整个供应链的可靠性治理可以版本化、可审计、可回滚。每一次台账变更都经过 Plan → Apply 流程,避免手动配置漂移。
注意: Terraform 本身不生成误差预算数据,它负责编排台账的基础设施与策略。数据流由 CI/CD 事件驱动,通过 Terraform 定义的资源进行记录和告警。
1.4 误差预算台账的核心数据模型
自动化台账需要记录以下关键维度,才能支撑误差预算的实时计算与审计:
| 字段 | 类型 | 说明 |
|---|---|---|
artifact_id |
String | 制品唯一标识(如镜像 digest) |
pipeline_run_id |
String | CI/CD 流水线运行 ID |
slo_name |
String | 目标名称(如 build_success_rate) |
slo_target |
Float | 目标值(如 99.9) |
actual_value |
Float | 实际测量值 |
budget_consumed |
Float | 本次消耗的误差预算(%) |
timestamp |
DateTime | 事件发生时间 |
triggered_by |
String | 触发者(用户/系统) |
课程目标: 学完本课程后,你将能够使用 Terraform 在 30 分钟内部署一套生产级的误差预算自动化台账系统,并集成到现有 CI/CD 流水线中。
1.5 本课程的学习路径
课程共 30 章,分为四个阶段:
| 阶段 | 章节范围 | 核心产出 |
|---|---|---|
| 基础与设计 | 第 1–8 章 | 误差预算模型、Terraform 模块设计、台账数据 schema |
| 核心实现 | 第 9–18 章 | DynamoDB/BigQuery 台账、告警策略、CI/CD 集成 |
| 进阶与安全 | 第 19–25 章 | 多环境台账、签名验证集成、供应链策略引擎 |
| 运维与扩展 | 第 26–30 章 | 监控、备份、Terraform 工作流自动化、案例实战 |
前置要求: 建议具备基础的 Terraform 语法知识(resource、data、variable、output)以及 CI/CD 基本概念。每章均提供可运行的代码示例。