首页/开发/CI/CD 与发布速查/以 SLO 为发布门禁(渐进发布观察)
质量门禁与回滚51 条

以 SLO 为发布门禁(渐进发布观察)

把 SLO 指标接入发布过程:灰度阶段发现错误率或延迟超出预算消耗速度时自动暂停推进,让可靠性数据直接参与发布决策。

CI/CD 与发布速查开发更新于 2026-10-13

以 SLO 为发布门禁是什么

把 SLO 指标接入发布过程:灰度阶段发现错误率或延迟超出预算消耗速度时自动暂停推进,让可靠性数据直接参与发布决策。观察指标采用与线上一致的 SLI 口径,判定方式为新版本与基线对比或预算消耗速度;动作包括暂停晋级、告警,必要时自动回滚。误判与漏判都要复盘:根据事故样本校准阈值与窗口。

基本信息

观察指标成功率、延迟分位、饱和资源等 SLI
判定与基线对比,或按预算消耗速度判定
动作暂停晋级、告警,必要时自动回滚
工具Argo Rollouts 分析、Flagger 等
口径分析阈值从现有 SLO 推导
数据来源指标系统提供灰度与基线两支序列
暂停语义暂停不撤流量,确认后继续或回滚
通知暂停与回滚动作通知发布负责人

门禁要素

要素来源作用
SLI 查询监控系统取灰度与基线数据
阈值SLO 目标推导判定是否超限
窗口按流量大小设置保证样本量
动作发布控制器暂停或回滚
记录分析结果快照支撑复盘与调参

分析模板要点

分析模板要点
apiVersion: argoproj.io/v1alpha1
kind: AnalysisTemplate
metadata: {name: success-rate}
spec:
  metrics:
    # 成功率门禁:阈值与 SLO 目标一致
    - name: success-rate
      interval: 1m
      successCondition: result[0] >= 0.99
      provider:
        prometheus:
          address: http://prometheus:9090
          query: |
            sum(rate(http_requests_total{code!~"5.."}[5m]))
            / sum(rate(http_requests_total[5m]))

典型使用场景

  • 金丝雀放量:每档晋级前用 SLO 判定,不达标即暂停
  • 重大变更:把门禁阈值收紧,先于用户感知异常
  • 值班值守:自动门禁替代人工盯盘,夜间发布更稳
  • 指标统一:门禁、告警与看板共用同一套 SLI 口径
  • 复盘取证:门禁判定记录留存,解释每次暂停的原因
  • 多服务复用:模板化分析规则,新服务按模板接入
  • 预算联动:错误预算消耗正常时继续,超标时收紧闸门
分析阈值从现有 SLO 推导:保证灰度判定与线上目标一致。门禁是减速带而不是路障:与发布流程配合减少临时人工决策。
预算消耗速度判定要防抖:瞬时波动触发暂停时应结合连续窗口确认。

易错点

  • 指标口径与 SLO 不一致:门禁判定与真实目标脱钩
  • 观察窗口过短:低流量时段样本不足,误判频发
  • SLI 采集缺版本维度:与基线混统计导致判定失真
  • 门禁只看技术指标:关键业务路径的下降未被覆盖

数据来源与参考

  • Argo Rollouts 文档《Analysis》
  • Google SRE Workbook《Alerting on SLOs》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌