1.什么是灰度发布
灰度发布(又名金丝雀发布)是指在黑与白之间,可以平滑过渡的一种发布方式。在其上能够进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,若是用户对B没有什么反对意见,那么逐步扩大范围,把全部用户都迁移到B上面来。灰度发布能够保证总体系统的稳定,在初始灰度的时候就能够发现、调整问题,以保证其影响度。
灰度期:灰度发布开始到结束期间的这一段时间,称为灰度期。web
2.为何要灰度发布
1) 灵活选择用户参与产品测试。
2) 规避必定的发布风险,下降产品迭代升级所影响的范围。
3) 快速获取用户的反馈意见,完善产品功能,提高产品质量。
4) 避免停服发布给用户带来不便。
5) 具备容灾能力:下降全量发布引发的服务器崩溃等风险,逐步发布产品,逐步控制服务器压力。数据库
3.灰度发布步骤服务器
1)定义目标
2)选定策略:包括用户规模、发布频率、功能覆盖度、回滚策略、运营策略、新旧系统部署策略等
3)筛选用户:包括用户特征、用户数量、用户经常使用功能、用户范围等
4)部署系统:部署新系统、部署用户行为分析系统(web analytics)、设定分流规则、运营数据分析、分流规则微调
5)发布总结:用户行为分析报告、用户问卷调查、社会化媒体意见收集、造成产品功能改进列表
6)产品完善
7)新一轮灰度发布或完整发布测试
4.灰度发布注意事项
1) 数据库变更部分场景没法进行灰度发布
好比,删除数据库字段,插入数据计算逻辑变更等
2) 灰度接口做为被调用方
灰度接口做为被调用方,必填参数删除,返回必填字段删除等接口