btest(什么是灰度发布?和A/B Test是同一个东西吗?
我们常常看到一些文章,说微信又上了什么什么功能,但还处于灰度发布阶段,因此不是每个用户都能体验到。那么到底什么叫“灰度发布”呢?和我们常说的A/B Test又是不是同一个东西呢?
灰度发布是指将影响对象从一小部分用户平滑过渡到全部用户的一种软件产品发布方式。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现问题、调整方案,以将风险控制在较小的范围。灰度发布从开始到结束的这一段时间,也就叫做“灰度期”。
因为具备快速迭代、小步快跑的特性,同时,又能实时获取用户的使用反馈,互联网产品因此比其他行业的产品更加适合于灰度发布。当前,我们最常接触到的灰度发布,就出现在各种手机APP中。
接触过软件开发的朋友,可能还听说过一个概念,叫做A/B Test,那么灰度发布就是A/B Test吗?
从字面上看,A/B Test是一种测试方式,而灰度发布是一种发布方式。A/B Test是通过发布手段来解决测试问题,灰度发布是用测试思想解决发布问题。二者本质目的其实相同,都是在白与黑之间选择了一个过渡方案,如果效果不佳,随时可以再调整甚至撤回。我们国家出台重大政策前,有时会找部分地区试点,就是同样的道理。
具体到适用的产品功能上面,二者略有差异。当有两个或多个方案(A/B/N Test)并存时,一并发布,让一部分用户使用方案A,让另一部分使用方案B,再根据用户反馈、数据分析等,最终选择其一,正式发布,这种情况用A/B Test来称呼更加准确;如果只是新增单一功能,并不明显存在二选一或多选一的情况,则最好叫做灰度发布。
我回顾了一下自己所做产品涉及过的灰度发布或A/B Test,大致可以分成以下四类:
对于较复杂功能的灰度发布,绝非易事。尤其那些涉及到数据结构差异大,并行难度高,功能下线的善后工作繁琐的功能,需要提前做好周全而细致地实施计划。