一、灰度发布介绍

灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。主要是按照一定策略选取部分用户,让他们先行体验新版本的应用,通过收集这部分用户对新版本应用的反馈

(如:微博、微信公众号留言或者产品数据指标统计、用户行为的数据埋点)以及对新版本功能、性能、稳定性等指标进行评论,进而决定继续放大新版本投放范围直至全量升级或回滚至老版本。

Untitled

二、灰度发布目的

(1)用于ART环境和UAT环境,先让本公司开发、测试、产品使用到最新版本,当版本运行验证稳定之后,推到稳定版本,提供给全部用户进行使用,实现平滑的发布。

(2)灵活性提高,允许了线上环境多版本共存的情况,同时解决了不同版本的客户端需要依赖多个不同前端版本的需求。

(3)为后期客户使用灰度功能打好技术基础和流程规范。

三、灰度发布实施过程

(1)灰度发布功能底层已经采用istio技术实现,开发或者测试无需关心。

(2)通过功能宣导会议,让公司人员在理念上知晓两个不同的版本,最新版和稳定版

最新版:通过运维配置后,特定人员可以访问的版本

稳定版:所有用户默认访问的版本

(当出现某些问题此账号正常,另一账户不正常时需要考虑到是否因为使用的版本不同所导致)

(3)收集需要访问最新版系统的人员账户,运维人员根据收集到的账户信息,设置路由信息,使其访问最新版的系统,以下为istio配置

(4)发版流程更改,对应UAT和ART发版流程,默认发布到最新版本,而非稳定版本。同时流程允许选择同时发布最新版本和稳定版本选项,以应对紧急线上版本修改

最新版经由验证稳定之后,同步到稳定版

(5)在jenkins流水线中,新增VERSION_ENV字段,定义发布到两个不同的版本,在触发流水线时选择,ORG_IDS表示需要进行灰度上线的企业ID,后台查询得到

四、局限性