3. 制品供应链模型:从代码提交到生产部署的完整链路与关键节点

在构建误差预算台账资源编排之前,必须首先理解制品供应链(Artifact Supply Chain)的完整拓扑。制品供应链是指从开发者提交代码开始,经过构建、测试、存储、签名、部署,直至在生产环境运行的全链路。每一个环节都可能引入延迟、失败或质量偏差,这些偏差正是误差预算需要度量的核心对象。

3.1 供应链全景:六阶段模型

我们将制品供应链抽象为六个核心阶段,每个阶段包含若干关键节点。下表列出了各阶段的输入、输出及典型误差来源:

阶段 输入 输出 典型误差来源
1. 代码提交 开发者本地变更 Git Commit + Tag 提交频率波动、合并冲突、CI 触发延迟
2. 持续集成 源代码 + 依赖 构建产物(二进制/JAR/镜像) 编译失败、依赖漏洞、构建时长超限
3. 制品存储 构建产物 + 元数据 版本化制品 + SBOM 存储可用性、签名验证失败、元数据丢失
4. 质量门禁 制品 + 测试套件 通过/阻断决策 测试覆盖率不足、误报率、超时
5. 环境部署 批准后的制品 运行中服务实例 配置漂移、回滚失败、金丝雀异常
6. 生产验证 生产流量 可观测性指标 延迟飙升、错误率突破 SLO、容量不足
关键认知: 误差预算台账并非只关注生产运行阶段,而是覆盖供应链全链路。一个在 CI 阶段因依赖缓存失效而多消耗的 3 分钟,同样会被记录为“构建延迟误差”,并影响当月的误差预算余额。

3.2 供应链拓扑与关键节点

下图展示了制品供应链的完整拓扑,包含六个阶段之间的数据流、控制流以及误差注入点。每个节点都对应一个可被 Terraform 资源化的台账条目。

制品供应链六阶段拓扑与误差注入点 代码提交 Git Commit 持续集成 Build & Test 制品存储 Registry + SBOM 质量门禁 Pass / Block 环境部署 Canary + Rollout 生产验证 SLO / Error Budget 误差注入点 误差注入点 误差注入点 误差注入点 误差注入点 误差注入点 反馈回路(误差预算消耗 → 部署频率调节)
拓扑要点:
  • 主链路(实线箭头): 代码提交 → CI → 存储 → 门禁 → 部署 → 验证,形成前向推进。
  • 反馈回路(虚线箭头): 生产验证阶段的误差预算消耗数据,反向调节代码提交和部署阶段的速率(如降低发布频率或触发回滚)。
  • 误差注入点(黄色框): 每个阶段都存在一个或多个可被 Terraform 资源化的误差计数器,用于记录延迟、失败、超限等事件。

3.3 关键节点详解与 Terraform 资源映射

每个关键节点都需要在 Terraform 中对应一个或多个资源定义。下表列出了六个阶段中的核心节点及其资源化方案:

阶段 关键节点 Terraform 资源示例 台账度量项
代码提交 Commit Hook / PR Merge github_repository_webhook 提交延迟、合并冲突次数
持续集成 Pipeline Trigger / Build Job gitlab_pipeline_schedule 构建时长、失败率、缓存命中率
制品存储 Artifact Registry / Container Registry google_artifact_registry_repository 存储可用性、拉取延迟、签名验证失败
质量门禁 Test Suite / Security Scan aws_codebuild_project 测试通过率、扫描超时、误报率
环境部署 Canary / Blue-Green / Rolling kubernetes_deployment 部署时长、回滚次数、金丝雀异常率
生产验证 SLI Collector / Alert Manager prometheus_rule_group 错误预算消耗率、SLO 违反次数

3.4 误差预算在供应链中的流动模型

误差预算并非静态配额,而是在供应链中动态流动的“质量货币”。下图展示了误差预算在六个阶段之间的分配与消耗逻辑:

误差预算在供应链中的流动模型 总误差预算 每月 100% 预算分配器 按阶段权重 CI 预算 20% 已消耗: 8% 存储预算 10% 已消耗: 3% 门禁预算 15% 已消耗: 12% 部署预算 25% 已消耗: 5% 生产预算 30% 已消耗: 18% 剩余预算 100% - 46% = 54% 每个阶段独立记账,汇总后影响发布决策
实践警告: 不要将所有误差预算都分配给生产阶段。CI 阶段的构建失败、门禁阶段的误阻断同样会消耗团队的“质量信用”。合理的分配策略是:生产阶段 30%~40%,CI+门禁 30%~40%,部署+存储 20%~30%。Terraform 台账资源应支持按阶段配置权重。

3.5 供应链模型对 Terraform 编排的指导意义

理解制品供应链模型后,Terraform 资源编排应遵循以下原则:

  • 资源粒度对齐阶段: 每个阶段对应一个独立的 Terraform 模块(module),模块内包含该阶段的所有台账资源定义。
  • 误差注入点可观测化: 每个关键节点必须输出至少一个 Prometheus Counter 或 CloudWatch Metric,用于记录误差事件。
  • 预算分配声明式管理: 使用 Terraform 变量(variable)定义各阶段的预算权重,支持按环境(dev/staging/prod)差异化配置。
  • 反馈回路自动化: 当生产验证阶段检测到误差预算耗尽时,Terraform 应触发部署策略的自动调整(如降低 max_surge 或启用回滚)。
供应链模型总结: 制品供应链不是线性管道,而是一个带有反馈回路的闭环系统。误差预算台账资源编排的核心任务,就是为这个闭环中的每个节点建立可量化的、可被 Terraform 管理的“质量账户”。下一章将深入讲解如何用 Terraform 定义这些账户的数据模型与资源结构。