4. 审批流概述:审批流在CI/CD中的位置、常见审批节点

在持续集成与持续交付(CI/CD)流水线中,审批流(Approval Flow)是连接自动化执行与人工决策的关键桥梁。它确保高风险操作(如生产环境部署、配置变更、敏感数据访问)在进入下一阶段前,获得必要的授权与验证。本章将系统阐述审批流在CI/CD体系中的定位、核心价值以及两类最常见的审批节点。

4.1 审批流在CI/CD中的位置

CI/CD流水线通常由代码提交、静态分析、单元测试、集成测试、构建打包、环境部署、验收测试等阶段串联而成。审批流并非独立阶段,而是嵌入在流水线关键节点之间的门禁(Gate)。其典型位置包括:

  • 构建后-部署前:验证构建产物是否通过质量门禁,允许人工确认版本号与变更内容。
  • 测试环境-预发布环境:在非生产环境验证通过后,需要审批才能进入预发布或灰度环境。
  • 预发布环境-生产环境:最高风险环节,通常需要多级人工审批与变更管理工单关联。
  • 生产环境-全量发布:灰度/金丝雀发布完成后,需要审批确认才能全量推送。
核心原则:审批流应遵循“最小必要”原则——只在真正需要人工判断的节点插入审批,避免过度审批拖慢交付速度。

下表对比了审批流在CI/CD不同阶段的典型应用场景与风险等级:

流水线阶段 审批触发条件 风险等级 典型审批类型
代码合并(MR/PR) 代码评审通过后 低-中 自动审批(代码规范检查)
构建完成 单元测试+集成测试通过 低 自动审批(测试覆盖率达标)
部署到测试环境 构建产物就绪 低 自动审批(环境可用性检查)
部署到预发布环境 测试环境验证通过 中 人工审批(测试经理确认)
部署到生产环境 预发布环境验证通过 高 人工审批(变更经理+技术负责人)
全量发布 灰度验证通过 高 人工审批(发布委员会)

下图展示了审批流在典型CI/CD流水线中的嵌入位置与流转关系:

审批流在CI/CD流水线中的位置 代码提交 构建+测试 自动审批 测试环境 人工审批 预发布环境 人工审批 生产环境 灰度验证 人工审批 全量发布 完成 自动化阶段 自动审批节点 人工审批节点 关键说明 • 自动审批节点(绿色)通常由测试覆盖率、代码质量门禁、安全扫描结果自动触发。 • 人工审批节点(橙色)需要指定审批人/审批组,支持超时自动拒绝或升级通知。 • 虚线箭头表示流水线在人工审批节点处暂停,等待审批结果后继续执行。 • 生产环境部署前的人工审批通常需要关联变更管理工单(Change Request)。

4.2 常见审批节点

根据审批触发方式与执行主体的不同,审批节点主要分为人工审批和自动审批两大类。两者在CI/CD流水线中协同工作,形成“自动检查为主、人工干预为辅”的治理模式。

4.2.1 人工审批节点

人工审批节点要求指定的审批人(或审批组)在流水线暂停时,通过审批平台(如Jenkins、GitLab、ArgoCD、自定义门户)做出“通过/拒绝/暂停”决策。其典型特征包括:

  • 审批人指定:支持单人审批、多人会签(所有审批人通过)、或签(任意一人通过)、加权审批。
  • 超时策略:超过设定时间未响应,可自动拒绝、自动通过或升级通知上级审批人。
  • 审批上下文:审批界面需展示本次变更的详细信息(提交记录、测试报告、变更影响范围、回滚方案)。
  • 审计追溯:所有审批操作记录写入审计日志,支持事后合规审查。
最佳实践:生产环境部署的人工审批建议采用“双人审批”模式(技术负责人+变更经理),并强制要求审批人填写审批意见,避免“无脑通过”。

4.2.2 自动审批节点

自动审批节点由流水线引擎根据预设规则自动执行,无需人工介入。其核心价值在于消除低价值等待,加速低风险阶段的流转。常见自动审批规则包括:

规则类型 检查条件 通过条件 失败处理
代码质量门禁 SonarQube扫描结果 新增代码覆盖率≥80%,无阻断性问题 流水线失败,通知开发人员
安全扫描门禁 依赖漏洞扫描、SAST/DAST结果 无高危/严重漏洞 流水线失败,触发安全工单
测试覆盖率门禁 单元测试+集成测试覆盖率报告 整体覆盖率≥75%,新增代码覆盖率≥85% 流水线失败,生成覆盖率报告
环境健康检查 目标环境可用性探测、资源水位 环境响应正常,CPU/内存使用率≤80% 暂停流水线,等待环境恢复或自动切换备用环境
合规性检查 许可证合规、数据分类标签 所有依赖许可证在白名单内 流水线失败,通知合规团队

下图对比了人工审批与自动审批在触发条件、执行流程与反馈机制上的差异:

人工审批 vs 自动审批 流程对比 人工审批流程 流水线暂停 发送审批通知 审批人查看上下文(变更信息/测试报告) 审批人决策:通过 / 拒绝 / 暂停 流水线恢复 / 终止 / 等待 自动审批流程 触发审批规则 自动采集数据 规则引擎匹配(覆盖率/漏洞/合规) 自动决策:通过 / 拒绝 流水线继续 / 失败并通知

4.3 审批节点选择策略

在实际项目中,需要根据风险等级、变更频率和合规要求综合选择审批节点类型。以下策略可供参考:

  • 低风险、高频次(如开发环境部署):优先使用自动审批,仅设置代码质量门禁和测试覆盖率门禁。
  • 中风险、中频次(如测试环境部署):自动审批+单人人审批,自动检查通过后由测试负责人确认。
  • 高风险、低频次(如生产环境部署):多级人工审批+自动合规检查,确保变更可追溯、可回滚。
  • 合规敏感场景(如金融、医疗):强制人工审批+审计日志+变更工单关联,自动审批仅作为前置条件。
常见误区:不要将所有审批节点都设置为人工审批,否则会导致流水线频繁等待,降低交付效率。建议将人工审批控制在流水线总节点数的20%以内,其余使用自动审批。