Canary Deployment
金丝雀部署
金丝雀部署会先让少量真实用户或流量使用新版。观察结果用来决定要扩大还是停止。
stable + small canary share -> observe gates -> promote, pause, or abort95%金丝雀 v25%- ✓错误率
0.3% ≤ 1% - ✓p95 latency
380 ≤ 500 ms - ✓结账成功率
稳定
stable + small canary share -> observe gates -> promote, pause, or abortOPS另一个例子
第 2 版先接收 5% 的结账流量。团队会观察十分钟的错误和延迟。任何一项超过上限就停止。
主要部分
- 01稳定版本
- 02金丝雀版本
- 03流量或用户比例
- 04观察时间
- 05成功与停止上限
- 06扩大或中止
什么时候用
需要观察生产环境的真实行为,而且能安全分流时,可以使用金丝雀部署。要定义对象、步骤、指标、上限、等待时间和回滚。
什么时候不要用
不要把每次缓慢发布都叫作金丝雀部署。必须让选定群体试用,并按结果决定是否扩大。
代码里的名称
stable + small canary share -> observe gates -> promote, pause, or abort 上线前要检查
发布前核对正确的代码仓库、分支、目标与代码差异。保留尚未发布的工作,并通过审查与自动检查(CI)。记录冲突、数据丢失风险、发布顺序、版本追踪、恢复与回到上一版的方法。
预期结果:用 金丝雀部署 (Canary Deployment) 安全交付或恢复变更,并留下可审核记录。 用户场景:第 2 版先接收 5% 的结账流量。团队会观察十分钟的错误和延迟。任何一项超过上限就停止。 交付概念或操作:金丝雀部署 (Canary Deployment)。 适用理由:需要观察生产环境的真实行为,而且能安全分流时,可以使用金丝雀部署。要定义对象、步骤、指标、上限、等待时间和回滚。 不应使用的情况:不要把每次缓慢发布都叫作金丝雀部署。必须让选定群体试用,并按结果决定是否扩大。 交付要求:指出代码仓库与目标。列出前置条件、变更内容、审查与自动检查(CI)、冲突和数据丢失风险、发布顺序,以及恢复或回到上一版的命令。 仓库防护:保留尚未发布的工作与可审核历史。没有明确备份时,不得执行破坏性操作。发布前核对准确的代码差异与远程仓库目标。 验收标准:预期的代码差异已审查,必要检查已通过。目标版本可追踪,失败恢复已演练,发布历史也可审核。 证据与限制(证据边界):没有一份官方标准能涵盖全部内容。不同团队、平台或框架的用法可能不同。 待确认:代码仓库与分支、协作状态、发布环境、批准负责人、受保护的检查,以及要恢复的版本。
检查这份需求
请 AI 编程助手检查当前如何使用 金丝雀部署 (Canary Deployment)。 定义:金丝雀部署会先让少量真实用户或流量使用新版。观察结果用来决定要扩大还是停止。 生产环境检查:发布前核对正确的代码仓库、分支、目标与代码差异。保留尚未发布的工作,并通过审查与自动检查(CI)。记录冲突、数据丢失风险、发布顺序、版本追踪、恢复与回到上一版的方法。 修改程序前,先列出看到的证据、缺口、严重程度,以及最小且安全的修正。