3. 制品供应链模型:从代码提交到生产部署的完整链路与关键节点
在构建误差预算台账资源编排之前,必须首先理解制品供应链(Artifact Supply Chain)的完整拓扑。制品供应链是指从开发者提交代码开始,经过构建、测试、存储、签名、部署,直至在生产环境运行的全链路。每一个环节都可能引入延迟、失败或质量偏差,这些偏差正是误差预算需要度量的核心对象。
3.1 供应链全景:六阶段模型
我们将制品供应链抽象为六个核心阶段,每个阶段包含若干关键节点。下表列出了各阶段的输入、输出及典型误差来源:
| 阶段 | 输入 | 输出 | 典型误差来源 |
|---|---|---|---|
| 1. 代码提交 | 开发者本地变更 | Git Commit + Tag | 提交频率波动、合并冲突、CI 触发延迟 |
| 2. 持续集成 | 源代码 + 依赖 | 构建产物(二进制/JAR/镜像) | 编译失败、依赖漏洞、构建时长超限 |
| 3. 制品存储 | 构建产物 + 元数据 | 版本化制品 + SBOM | 存储可用性、签名验证失败、元数据丢失 |
| 4. 质量门禁 | 制品 + 测试套件 | 通过/阻断决策 | 测试覆盖率不足、误报率、超时 |
| 5. 环境部署 | 批准后的制品 | 运行中服务实例 | 配置漂移、回滚失败、金丝雀异常 |
| 6. 生产验证 | 生产流量 | 可观测性指标 | 延迟飙升、错误率突破 SLO、容量不足 |
关键认知: 误差预算台账并非只关注生产运行阶段,而是覆盖供应链全链路。一个在 CI 阶段因依赖缓存失效而多消耗的 3 分钟,同样会被记录为“构建延迟误差”,并影响当月的误差预算余额。
3.2 供应链拓扑与关键节点
下图展示了制品供应链的完整拓扑,包含六个阶段之间的数据流、控制流以及误差注入点。每个节点都对应一个可被 Terraform 资源化的台账条目。
拓扑要点:
- 主链路(实线箭头): 代码提交 → 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 误差预算在供应链中的流动模型
误差预算并非静态配额,而是在供应链中动态流动的“质量货币”。下图展示了误差预算在六个阶段之间的分配与消耗逻辑:
实践警告: 不要将所有误差预算都分配给生产阶段。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 定义这些账户的数据模型与资源结构。