知识卡片
灰度、蓝绿、红黑发布的风险控制逻辑
内容
三种发布策略解决的都是”如何在不确定新版本是否可靠时,把风险敞口降到最低”,但控制手段不同:灰度发布(金丝雀发布)先让一小部分用户使用新版本,观察没问题后逐步扩大范围,是按”用户比例”控制风险;蓝绿发布把系统拆成对等的两组,新版本先在一组小流量试跑,确认无误后再逐步把全部流量迁移过去,两组环境始终都在,是按”环境切换”控制风险;红黑发布(Netflix在AWS上的做法)则更彻底——新版本上线在全新创建的服务器集群上,测试不通过直接销毁这批新服务器,通过则把流量指向新集群、销毁旧集群,全程服务不中断,且不需要像蓝绿发布那样长期维持两套冗余环境。核心共同点:所有做法都在用”先小范围验证、可随时撤回”替代”一次性全量上线、出错难回滚”,只是控制粒度和资源代价的取舍点不同。
参考来源
《技术人修炼之道》第9章《9.2 硅谷10倍速工程效能提升方法》