背景
互联网产品有一个特点,就是不停的升级,升级,再升级。一般采用敏捷开发的团队,基本上保持每周一次的发布频率,系统升级总是伴随着风险,新旧版本兼容的风险,用户使用习惯突然改变而造成用户流失的风险,系统down机的风险.....为了避免这些风险,很多产品都采用了灰度发布的策略,其主要思想就是把影响集中到一个点,然后再发散到一个面,出现意外情况后很容易就回退。
目前产品有新版本,release测试通过以后,直接放到更新服务器上,做全量用户推送。当发现新版本存在测试未覆盖到的问题时,造成的影响面较大,解决问题的代价也很大。因此可以考虑引入灰度发布。
灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布方式,让一部用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面 来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。
灰度发布的作用
a.及早获得用户的意见反馈,完善产品功能,提升产品质量
b.让用户参与产品测试,加强与用户互动
c.降低产品升级所影响的用户范围
d.规避一定的发布风险
e.避免停服发布给用户带来不便
f.具有容灾能力
扩展阅读:http://blog.csdn.net/boonya/article/details/51537674