灰度发布的实现要满足以下两点:
- 流量配置(工作人员配置不同策略,配置放量)
- 用户标识(以用户为维度,多次请求都打到同一台服务器)
按照端划分,分为:web端、客户端、服务端
- web端
前端资源分配版本号,根据策略放量到指定版本。把用户id和版本号的映射关系保存到cookie。 - 客户端
一般根据以下几种策略:
用户设备的系统和应用版本;
渠道;
设备ID和用户ID; - 服务端
分为兼容变更和不兼容变更。
兼容变更:
物理灰度:按机器维度划分,使用kong等网关
逻辑灰度:使用代码控制,精确控制,但是侵入性较强
不兼容变更:
版本号:新老版本并存,前后端都需要改变,使用 /v1/api 和 /v2/api 区分
流量策略,一般有以下几种:
- 按流量百分比
比如10%打到目标服务器,剩余打到默认服务器 - 按人群打标划分
按用户id、ip、设备类型等
按地域、性别、年龄等 - 按渠道
比如用户的注册源