天天看点

灰度发布究竟是啥

概述

目前产品优化迭代的方式,通常是直接将某版本上线发布给全部用户,一旦遇到线上事故(或BUG),对用户的影响极大,解决问题周期较长,甚至有时不得不回滚到前一版本,严重影响了用户体验。

灰度发布可以解决上述问题,实质是在不停止老版本服务的前提,控制流量,减少客户体验,流量逐步放开至全部。

灰度发布,又名金丝雀发布,或者灰度测试,是指在黑与白之间能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。

灰度发布是对某一产品的发布逐步扩大使用群体范围,也叫灰度放量。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。

灰度发布作用

灰度发布能及早获得用户的意见反馈,完善产品功能,提升产品质量,让用户参与产品测试,加强与用户互动,降低产品升级所影响的用户范围。

具体操作

1.灰度发布

如下图所示的灰度发布场景,我们将总流量的5%分配至版本1中,开启试验,通过科学分流将用户随机分配至原始版本和版本1中,然后我们持续观察版本1与原始版本的差异。当版本1出现严重BUG时,我们要做的仅仅是动动手指,将版本1的流量分配调整至0%即可,所有用户都将访问原始版本,从而规避某一个版本的BUG造成不良影响,最大限度地降低了损失并进行快速调整。

灰度发布究竟是啥

2.全量发布

上述灰度发布的场景描述的是版本1出现问题的情况,倘若版本1的表现明显优于原始版本,那么我们是否就可以进行全量发布了呢?

答案是否定的。AB测试是一套科学严谨的试验方法,它可以帮助我们有效验证假设,但是不能把它某一次的预测结果优于原始版本,就把这种趋势当成必然发生的判断依据。比较科学的方式是不断调整版本1的流量占比,例如5%>10%>20%>30%>50%>70%>90%直至100%(调整的比例需要具体问题具体分析,不同的产品特性,不同的用户群体等变量因素需要进行综合考量)。之后,持续观察版本之间的差异。

当版本1的流量调整至100%时(如下图),我们即完成了全量发布。

灰度发布究竟是啥

继续阅读