一、灰度发布的概念
灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。
二、灰度发布的划分
灰度发布如果按照端来分的话,可以分为web前端、客户端、服务端灰度。
一般需要满足以下2点要求:
a. 需要一个放量配置,给产品/运营等工作人员配置放量策略
b. 需要做到同一个用户始终访问的是同一个版本的代码,如果同个用户上个请求访问的是A版本,下个请求访问的是B版本,就可能会出问题。
1.web端灰度:
2.客户端灰度:
- 根据用户设备的系统和应用版本;
- 根据渠道:
- 发布到不同应用市场的app都会被打上渠道标签,所以可以根据渠道来区分用户;
- 根据设备ID和用户ID。
- 通过设备ID主要是为了控制提醒频率,用户ID主要是为了区分出特性用户。
3.服务端灰度:
- 兼容变更
a. 物理灰度:根据机器维度进行灰度(例如:nginx)
b. 逻辑灰度:根据更精确的流量策略来控制流量,这种灰度一般要写一定的灰度代码。这种方式能比较精确地控制流量,但是增加了一定的灰度代码。 - 不兼容变更
不兼容变更指的是更改了当前功能,即接口逻辑跟之前版本发生很大变化,必须要前后端同时发布。(例如:引入版本号)
三、灰度放量策略
- 按流量百分比
先到先得的方式比如限制10%的用户体验的是新版本,90%的用户体验的是老版本。先访问网站的用户就优先命中新版本,直到流量用完为止。 - 按人群划分
按用户id、用户ip、设备类型比如可通过平时的埋点上报数据得知用户的pv、uv、页面平均访问时长等数据,根据用户活跃度来让用户优先体验新版本,进而快速观察使用效果。
按地域、性别、年龄等用户画像比如可通过用户的性别、年龄等做下新老版本的对比效果来看看目标用户在新版本的使用年龄段,性别范围是多少。 - 按渠道划分
根据用户的注册来源来放量。(例如:乘客端/车主端/webapp/微信小程序)
评论区