金丝雀发布Canary Release
你可能会说
先让 5% 用户使用新版本,错误率正常再逐步扩大,异常就立刻退回稳定版。
金丝雀发布是先把新版本交给少量真实流量验证,再根据健康信号扩大或停止的发布策略。例如结账服务 v2 先承接 5% 请求,其余 95% 仍由 v1 处理;若 v2 错误率越过阈值,就停止扩大并把流量退回 v1。它限制的是版本发布范围,不等于只开关某一个功能。
也常被叫作Canary ReleaseCanary Deployment金丝雀部署灰度发布
延伸阅读 · 权威出处
先让 5% 用户使用新版本,错误率正常再逐步扩大,异常就立刻退回稳定版。
结账错误率0.2%
结账错误率未接流量
↳v1 承接全部请求;v2 已准备好,但还没有真实用户进入。
先把潜在影响限制在小范围:如果新结账版本直接全量上线,未知问题会同时影响所有请求。先给 v2 分配 5% 流量,其余请求继续走已验证的 v1,团队就能在真实条件下观察新版而不立刻扩大影响。
用预先约定的信号决定下一步:发布前要写清观察时间、错误率或延迟阈值,以及异常时怎样退回。指标健康才逐步扩大;超过阈值就停止并恢复稳定版。小流量没有报错也不能保证新版不存在其他问题。
请把结账服务 v2 先按 5% 流量做金丝雀发布,观察 15 分钟内的结账错误率和延迟。错误率低于 2% 才扩大;超过阈值就停止发布并把流量退回 v1。完成后告诉我两个版本的实际流量和指标。