灰度发布

灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。
正常一个产品开发过程中,会对其进行功能测试,用户体验测试,交互评估等。功能测试可以让产品尽量少的BUG;用户体验测试与交互评估等可以在开发过程中,使产品尽可能的满足于用户的使用习惯,以及对功能的可接受程度。但这些都是少部分人的感觉与习惯所产生的结果,只是公司内部的测试+小范围外部测试。在标准的软件产品的发布过程中,这充其量只是一个Alpha版本,而一般互联网产品的发布大多都是做到这里就直接上线,替换了原有的版本,这种跳跃式的发布是非常危险的,如果产品影响面大,对项目成员的压力是非常大的。
灰度发布可以在原有的Alpha版本之后增加了更大范围的外部测试,是一个不断的放量过程,通过这样的发布过程可以使产品的问题暴露出来,而不会影响到全部的用户,最终可以让产品最大程度稳定、适合用户。灰度发布可以从业务,功能,性能,用户体验很多方面使产品得以提升,并平滑上线。
QZone是一个采用灰度发布的例子。大家都知道,QZone在过去的几年中改进是巨大的,从以前慢悠悠的老爷爷变成了一个充满青春活力的小伙子。其中经历了大小无数次的发布,他们的发布也都是采用了灰度发布的策略,用户数据的升级并不是大面积的一次性升级,而是通过一个用户升级标志服务器,如果用户数据没有升级,后台会把此用户的数据逐步迁移到新版本上,然后将升级标志位置1,升级过程中,用户仍然可以访问旧的数据,升级完成后的访问都将转发给新的版本。QQ的很多产品发布都采用灰度发布,有些是抽取部分QQ号段升级成新系统,然后根据用户反馈再大范围升级。
在传统软件产品发布过程中(例如微软的Windows 7的发布过程中),一般都会经历Pre-Alpha、Alpha、Beta、Release candidate(RC)、RTM、General availability or General Acceptance (GA)等几个阶段(参考Software release life cycle)。可以看出传统软件的发布阶段是从公司内部->外部小范围测试>外部大范围测试->正式发布,涉及的用户数也是逐步放量的过程。 在互联网产品的发布过程中也较多采用此种发布方式:产品的发布过程不是一蹴而就,而是逐步扩大使用用户的范围,从公司内部用户->忠诚度较高的种子用户->更大范围的活跃用户->所有用户。在此过程中,产品团队根据用户的反馈及时完善产品相关功能。此种发布方式,按照中国特色的叫法被冠以”灰度发布“、”灰度放量“、”分流发布“。

你可能感兴趣的:(灰度发布)