1.什么是灰度发布?
什么是灰度发布呢?要想了解这个问题就要先明白什么是灰度。灰度从字面意思理解就是存在于黑与白之间的一个平滑过渡的区域,所以说对于互联网产品来说,上线和未上线就是黑与白之分,而实现未上线功能平稳过渡的一种方式就叫做灰度发布。
非黑即白从来不是一种普遍现象,从色彩角度讲,灰度指不饱和的黑色,我们把黑色定为基准色,每个灰度对象是从白色(0%)到黑色(100%)的中间值,这中间的98%都是灰。
互联网产品的几个特点:用户规模大、版本更新频繁。新版本的每次上线,产品都要承受极大的压力,而灰度发布很好的规避了这种风险。
在了解了什么是灰度发布的定义以后,就可以来了解一下灰度发布的具体操作方法了。可以通过很多种形式来抽取一部分用户,比如说选择自己的VIP用户,或者选择一些活跃用户,把这些用户分成两批,其中一批投放A版本,另外一批投放B版本,在投放之前就要对各种可能存在的数据做到收集记录工作,这样才能在投放以后查看两个版本的用户数据反馈,通过大量的数据分析以及调查来确定最后使用哪一个版本来进行投放。
什么是灰度发布呢?一般来说,一套完善的灰度发布是需要先进行必要的用户标识的,也就是区分用户,比如说从付费数量或者所在地区以及活跃程度等很多方面来进行区分,这种区分的目地也是为了可以更加精确的进行必要的数据分析。
一套完整的灰度发布机制会包括下面这些阶段:
用户标识:主要是区分用户,同时也为数据分析做辅助。
目标用户/流量筛选:需要参考用户特征、用户流量、用户范围及用户体验的一致性,版本迭代针对全部用户还是部分用户,小流量试验通过再放量,一般来说按照内部用户-种子用户-活跃用户-所有用户的顺序就是一种典型的范围控制,体验一致性要求考虑新旧版本的跨度是否过大,用户能否接受。
实时数据监控:监测诸如新版本稳定性、服务器稳定性、使用次数、使用频率等数据与原有数据对比。
一键发布/回滚:从数据反馈结果决定是否发布/回滚。
有人质疑灰度发布是一种浪费。但与其说这是浪费不如说是冗余和弹性,灰度发布能避免新版本全量上线的风险,通过小流量验证的方式,在灰度阶段就能发现、调整并优化产品中的问题,平滑迭代。
同时还要对所有的相关数据进行收集工作,比如新版本的稳定性,服务器的稳定性以及使用次数,使用频率以及各种数据,方便和以前的原有数据进行对比。
也许有人会觉得灰度发布完全没有必要,是一种资源的浪费,其中灰度发布是非常有用的,这样做的目地不但能了解最真实的用户体验同时还可以有效的防止重大BUG产生影响系统回档或者造成其他更多不必要的经济损失,所以说灰度发布是有效避免新版本上线风险的一种有效办法,可以通过小流量来先进行测试工作,帮助新版本完成平滑迭代。