参考文章:
http://baike.baidu.com/link?url=cvdJaUrtYC0KDwLxunlY07t9voaDtir4VQeUIZsaYTQoln63GraQ59_lzU_wjFrR_ObTUMopvq75HAne7qGtiK
转载地址:
http://blog.sina.com.cn/s/blog_560a63bb0100oz1y.html
与现有国内一般的公司发布的作法相比,灰度发布的过程是一个渐近的过程,其实这才是一种正确、规范、安全的发布过程。
正常一个产品开发过程中,会对其进行功能测试,用户体验测试,交互评估等。功能测试可以让产品尽量少的BUG;用户体验测试与交互评估等可以在开发过程中,使产品尽可能的满足于用户的使用习惯,以及对功能的可接受程度。
但这些都是少部分人的感觉与习惯所产生的结果,只是公司内部的测试+小范围外部测试。
在标准的软件产品的发布过程中,这充其量只是一个Alpha版本,而一般互联网产品的发布大多都是做到这里就直接上线,替换了原有的版本,这种跳跃式的发布是非常危险的,如果产品影响面大,对项目成员的压力是非常大的。
灰度发布可以在原有的Alpha版本之后增加了更大范围的外部测试,是一个不断的放量过程,通过这样的发布过程可以使产品的问题暴露出来,而不会影响到全部的用户,最终可以让产品最大程度稳定、适合用户。
如果要使用灰度发布,与往常的项目过程不同的是,需要做好提升点的预准备,通过数据分析,日志分析找到改进点;也要考虑在出问题时可以快速的定位到问题,并切换到原有产品;当然放量也是可以有多种多样的,可以通过选取最能让产品改进的用户参与新版本的试用。
灰度发布可以从业务,功能,性能,用户体验很多方面使产品得以提升,并平滑上线。
参考: 传统软件产品发布过程(例如微软的Windows 7的发布过程)一般都会经历Pre-Alpha、Alpha、Beta、Release candidate(RC)、RTM、General availability or General Acceptance (GA)等几个阶段(参考Software release life cycle)从范围来理解,即公司内部->外部小范围测试->外部大范围测试->正式发布。