灰度发布是应用发布部署的一种方式,因其可尽早的发现问题的同时降低整体发布的风险的特点,己成为互联网产品发布常用的一种方式,那么什么是灰度发布呢?百度百科的概念是在黑和白之间平滑过渡的一种产品发布方式。
通俗的讲,可以这样理解:产品的发布过程不是一蹴而就,而是逐步扩大使用用户的范围,从公司内部用户->忠诚度较高的种子用户->更大范围的活跃用户->所有用户,在灰度发布过程中,产品发布者根据某种规则策略,让一部分用户继续用原来的产品功能,另一部分用户开始逐渐启用新功能,在过渡的过程中通过收集体验使用的数据,对新版本应用的功能、性能、稳定性等指标进行评判,进而决定继续放大新版本投放范围直至全量升级或回滚至老版本。
一个灰度发布的架构需要有以下的组成部分:用户标识:用户标识用于区分用户,辅助数据统计,保证灰度发布过程中用户体验的连贯性。匿名Web应用可采用IP、Cookie等,需登录的应用可直接采用应用的帐号体系。目标用户选取策略:可直接强制升级,对于类似新浪微博改版这样的大型升级,应让用户自主选择,最好能够提供让用户自主回滚至旧版本的渠道。数据反馈:灰度发布的本质实际上是让用户帮你测试,但是用户不是专职的测试,所以他一般不会主动报bug。所以灰度发布要有安全隔离,完善的监控,并且有友好的目标客户群 用户数据反馈在得到用户允许的前提下,收集用户的使用新版本应用的情况。如客户端性能、客户端稳定性、使用次数、使用频率等。用于与旧版本进行对比,决策后续是继续扩大新版本投放范围还是回滚。服务端数据反馈:新版本服务端性能、服务端稳定性等,作用与用户数据反馈类似。