近日接触的项目涉及到“灰度发布”的概念,这是第一次接触灰度发布,因此对灰度发布用户选取的方式十分好奇。
“灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。”--源自百度百科词条“灰度发布”。
总而言之,是在版本出现升级/变更的时候,选取一部分用户先升级版本并使用,其他用户继续沿用之前的版本,如若新版本的质量稳定、反馈良好,则可以进一步扩大升级的范围,从而实现“平滑过渡”,一定程度上也能保证产品的质量。
使用灰度发布时,“选取一部分用户”的操作如何进行呢?基于当前项目的特性(用户固定且最大值为1100),我设想的方式是:维护用户列表,增加“灰度”字段,管理员可以自行选择用户进入灰度发布的用户范围;同事设想的方式是:用户ID最末位为数字且小于5(等于伍,大于5,任意方式,任意数字)的用户进入灰度发布的用户范围。由于我和同事目前都没有过“灰度发布”的相关经验,因此具体的选取方式与选取的比例仍然没有具体的定论。
后来还了解到,灰度发布不仅仅需要注重用户的选取、规模,还有很多其他的因素需要关注,如策略:包括用户规模、发布频率、功能覆盖度、回滚策略、运营策略、新旧系统部署策略,筛选用户:包括用户特征、用户数量、用户常用功能、用户范围等,部署系统:部署新系统、部署用户行为分析系统(web analytics)、设定分流规则、运营数据分析、分流规则微调,发布总结:用户行为分析报告、用户问卷调查、社会化媒体意见收集、形成产品功能改进列表,最终落脚在产品的完善以及进一步的灰度发布or正常发布。
灰度发布中策略、用户的选取,需要依据项目的具体特性而定制,而目前项目的需求需要团队成员寻找一种“普适”的灰度发布方式。目前还没有得到一个很好的结论。啊,有结论的时候会持续更新~~~
网友评论