← 中文资源

简体中文版本

带指标门禁的金丝雀发布

把少量流量路由到新版本,在明确指标上与稳定基线比较,并根据证据决定推广或回滚。

阅读英文原文

先定义指标,再放流量

只有知道“健康”是什么样子,金丝雀才有意义。先记录稳定版本的基线,再定义门禁:错误率、p95/p99 延迟、饱和度和该变更要影响的业务指标。

canary:
  steps:
    - setWeight: 5
    - pause: { duration: 10m }
    - setWeight: 25
    - pause: { duration: 20m }
    - setWeight: 50
    - pause: { duration: 20m }

步骤

  1. 把 1–5% 流量路由到新版本。
  2. 在同一时间窗口比较金丝雀与稳定版本。
  3. 只有所有门禁通过才扩大流量。
  4. 出现硬失败立即回滚;结果不明确时先停止扩量并调查。
  5. 最终门禁通过后推到 100%,保留旧版本直到回滚窗口结束。

验证

  • 金丝雀与稳定版本在相同仪表盘上比较。
  • 错误率与延迟分位数在发布预算内。
  • 特性指标向预期方向变化。
  • 发布前已测试回滚路径。
  • 旧版本在回滚窗口结束前保持可用。

决策点

高风险变更从 1–5% 开始并延长观察窗口;首轮门禁通过且有足够样本后再增加。硬回滚信号应是相对于 SLO 的有统计意义的阈值,单个日志错误通常是噪声,持续违约不是。

常见陷阱

流量太少的金丝雀比较噪声大;所有请求来自同一区域或客户端会使样本有偏;只看“没有告警”而不对照基线会漏掉渐进式退化。门禁应在发布前定义,不能中途移动。