SH

Soloharness

概念 · 辨析 · Agent

← 返回概念辨析

Concept Contrast Fable

先放一辆车看看和按比例逐段放行

金丝雀发布先放一小部分流量到新版本,观测指标正常后再扩大。灰度发布按预设计划逐段增加新版本的比例。两者都控制风险,但金丝雀发布的核心是观测后决策,灰度发布的核心是按计划推进。

寓言

两座新桥的守桥人,一个先试走一人,一个按人数逐批放行

古城外修了两座新桥,同一天完工。东桥守桥人老沈放了两个挑担的人先过去,自己站在桥头盯着桥面看有没有裂缝,听有没有异响。西桥守桥人老徐拿着一张比例表:头一个时辰放一成行人,第二个时辰放三成,第三个时辰放六成,太阳落山前全桥放通。

东桥那两个挑担人走到一半,桥面震了一下。老沈立刻吹哨,把人喊回来,桥重新检查。查到第三根桥墩有轻微沉降,工匠连夜加固。第二天老沈又放了三个推车的过去,桥稳了,才开始放人。西桥那边按比例放行,第三个时辰放到了六成人流,桥面开始晃。老徐看计划表写的是六成,就没停。结果桥面晃得更厉害,行人开始跑。

事后复盘,县官问老徐为什么不叫停。老徐说计划表没有观测后决策这一步,按比例执行不该被中断。老沈说他的逻辑刚好相反——每一步都是先试后放,试不过就不放,观测结果是唯一的通行证。县官在档案里写:一个靠观测决策,一个靠计划推进。不能混着用。

后来两座桥都做了修补。县官规定,新桥验收当天必须用老沈的方法——先放最少的负载,观测关键指标,指标不达标不允许进入下一步。日常放行可以用老徐的方法——按计划分段推进,因为桥已经验证过是安全的。

新来的守桥学徒问了一个问题:如果金丝雀的人过去没事,是不是就能直接全放开?老沈说不行,人少时的压力和人多时的共振是两回事。金丝雀只是告诉你这个版本可以开始放了,不代表可以一口气放完。

后来在守桥人手册里画了一张图:先放一两辆车——观测——放一成——观测——放三成——观测——放六成——全放。金丝雀是第一步,灰度发布是整条路。第一步负责判断能不能走,后面几步负责控制走多快。

手册最后一页写了一行字:金丝雀没出事不等于可以直接全放开,灰度放了八成没出事不等于不需要观测。两个词都在说同一件事——别一口气把所有人放上桥。

金丝雀发布

先将新版本暴露给极少量用户或流量,观测关键指标。指标正常后才逐步扩大范围。核心动作是观测后决策,而不是按固定计划推进。

灰度发布

按预定的比例和时间计划,逐步将流量切换到新版本。核心是按计划推进,每一阶段可能有观测,但决策逻辑是计划驱动的。

故事对应

  • 老沈先放两个人再观测:金丝雀发布,观测后决策,不过就不放
  • 老徐按一成三成六成推进:灰度发布,按计划分段推进
  • 西桥按计划放六成晃动没停:计划驱动可能忽略实时信号
  • 验收当天用老沈方法、日常用老徐方法:金丝雀适合首次验证,灰度适合稳定推进
  • 金丝雀过了不等于一口气全放:先放两个人的安全不等于满负荷的安全
  • 手册画的金丝雀是第一步:金丝雀是灰度发布的第一阶段,但决策逻辑不同

落到发布策略设计

首次上线或有重大变更时,先做金丝雀发布——放极小比例流量观测至少一个完整监控周期,指标不达标直接回退。金丝雀通过后进入灰度发布——按比例分段放量,每段都有回退触发条件。不要让灰度发布替代金丝雀的观测验证,也不要在金丝雀通过后一次性全放。两者的配合是:金丝雀判断能不能走,灰度控制走多快。