3. 制品供应链核心概念:CI/CD流水线、制品仓库与部署环境

在构建制品供应链误差预算台账监控资源栈之前,必须统一理解三个核心概念:CI/CD流水线、制品仓库(Artifact Registry)以及部署环境(Dev/Staging/Prod)。这三者构成了制品从“代码提交”到“生产运行”的完整生命周期,也是误差预算数据采集与监控的锚点。

3.1 核心概念总览

概念 定义 在误差预算中的角色
CI/CD流水线 自动化构建、测试、部署的流程管道 触发制品版本生成,记录构建耗时、成功率、部署频率
制品仓库 存储与版本化管理构建产物的中央仓库 提供制品元数据(版本、哈希、签名),支撑可追溯性审计
部署环境 Dev / Staging / Prod 等运行基础设施 定义误差预算的观测边界,区分变更风险等级
关键原则:误差预算台账必须能够将“一次部署”关联到“具体的流水线运行ID”、“制品仓库中的精确版本”以及“目标部署环境”。任何环节的断裂都会导致监控数据失真。

3.2 CI/CD流水线:制品的生产流水线

CI/CD流水线是制品供应链的“发动机”。每一次代码合并、标签推送或手动触发,都会启动一条流水线。从误差预算视角,我们需要关注流水线的三个关键阶段:

  1. 持续集成(CI)阶段:代码编译、单元测试、安全扫描、容器镜像构建。此阶段产出不可变制品。
  2. 持续交付/部署(CD)阶段:将制品自动或半自动地部署到目标环境。此阶段产生部署事件。
  3. 质量门禁(Quality Gates):在流水线中嵌入的自动化检查点(如测试覆盖率、漏洞阈值)。门禁失败会阻断制品向下游流转。
监控埋点建议:在流水线关键步骤(构建完成、部署开始、部署完成)注入自定义指标,例如 pipeline_build_duration_seconds、deployment_success_total。这些指标是误差预算计算的基础输入。
CI/CD流水线核心流程与制品流转 CI/CD流水线核心流程与制品流转 代码提交 CI构建 & 测试 制品仓库 CD部署 质量门禁(测试覆盖率 > 80%) 误差预算指标:构建耗时、成功率 流水线每次运行生成唯一 Build ID,与制品版本、部署环境强关联

3.3 制品仓库:制品的版本化存储与溯源

制品仓库是供应链的“物料中心”。无论是 Docker 镜像、JAR 包、npm 包还是 Helm Chart,所有经过 CI 阶段验证的产物都必须被唯一标识并存储。误差预算台账依赖制品仓库提供以下关键数据:

  • 制品版本号:语义化版本(SemVer)或 Git Commit SHA,用于精确回滚。
  • 制品摘要(Digest):内容哈希,确保制品未被篡改。
  • 构建元数据:构建时间、触发者、关联的流水线 ID。
  • 签名与认证:用于验证制品来源的合法性(如 Cosign 签名)。
常见陷阱:不要使用“latest”标签作为部署依据。必须使用不可变标签(如 v1.2.3 或 sha256:abc123),否则误差预算无法追溯具体哪个版本导致了 SLO 消耗。

3.4 部署环境:Dev / Staging / Prod

部署环境定义了制品的运行上下文,也是误差预算监控的物理边界。不同环境具有不同的稳定性要求和变更频率,因此误差预算的分配策略也应有所区别。

环境 目的 变更频率 误差预算权重 典型监控指标
Dev 快速验证与调试 极高(每日多次) 低(允许较高失败率) 部署次数、构建成功率
Staging 预生产集成测试与验收 中(每日数次) 中(接近生产标准) 部署耗时、回归测试通过率
Prod 面向最终用户提供服务 低(受变更窗口限制) 高(严格遵循 SLO) 可用性、延迟、错误率
Terraform 实践:使用 Terraform Workspace 或独立的 Terraform 配置文件来管理不同环境。每个环境的 terraform.tfvars 中应包含 environment = "dev" | "staging" | "prod" 标签,该标签会作为 Prometheus 指标的公共维度,用于在误差预算台账中按环境筛选。
制品跨环境流转与误差预算分配 制品跨环境流转与误差预算分配 制品仓库 Dev 环境 误差预算权重:低 Staging 环境 误差预算权重:中 Prod 环境 误差预算权重:高 制品晋升路径:Dev → Staging → Prod(每个阶段需通过质量门禁)

3.5 三者的协同关系:误差预算数据流

在监控资源栈中,CI/CD流水线、制品仓库和部署环境共同构成了误差预算的数据采集平面。以下是一个典型的数据流:

  1. 流水线触发:开发者推送代码,CI/CD 流水线启动。
  2. 制品生成与存储:CI 阶段构建制品,并将其推送至制品仓库,同时记录构建元数据。
  3. 部署事件:CD 阶段从制品仓库拉取特定版本制品,部署至目标环境。
  4. 指标采集:Prometheus 等监控系统从流水线、制品仓库 API 以及部署环境的应用实例中采集指标。
  5. 误差预算计算:误差预算台账服务将采集到的指标(如部署频率、失败率、恢复时间)与预设的 SLO 进行对比,计算剩余预算。
自动化集成:在 Terraform 中,可以使用 terraform_data 资源或外部数据源来触发流水线状态查询,并将结果写入 Prometheus 的 Pushgateway,实现基础设施即代码与监控数据的闭环。