标准答案
- 滚动发布适合兼容性好、实例可替换、资源预算有限的常规发布,需要保证新旧版本可以并存。
- 蓝绿发布让两套完整环境并存,通过流量切换完成发布,回滚快,但需要双倍资源和数据兼容设计。
- 金丝雀发布按用户、实例、地域或流量比例逐步扩大,能够在真实流量下观察错误率、延迟和业务指标。
- 不论哪种方式,数据库变更、缓存结构、消息 Schema 和外部回调都必须提前考虑新旧兼容。
题目解析
发布策略只解决“代码如何进入流量”,不自动解决数据兼容。没有先扩展再收缩的迁移策略,再好的切流也可能在回滚时损坏数据。
金丝雀的价值依赖于可观测性和可停止性。没有明确指标、样本和回退动作,只是把风险随机分给一小部分用户。
常见误区
- 认为蓝绿或金丝雀天然不需要回滚方案。
- 滚动发布时修改不兼容字段,导致新旧实例互相报错。
- 只看实例健康,不看业务成功率和关键流程指标。