五、灰度发布使用指南
通过灰度发布功能,可以实现:
- 对于一些对程序有比较大影响的配置,可以先在一个或者多个实例生效,观察一段时间没问题后再全量发布配置。
- 对于一些需要调优的配置参数,可以通过灰度发布功能来实现A/B测试。可以在不同的机器上应用不同的配置,不断调整、测评一段时间后找出较优的配置再全量发布配置。
下面将结合一个实际例子来描述如何使用灰度发布功能。
5.1 场景介绍
100004458(apollo-demo)项目有两个客户端:
- 10.32.21.19
- 10.32.21.22
灰度目标:
- 当前有一个配置timeout=2000,我们希望对10.32.21.22灰度发布timeout=3000,对10.32.21.19仍然是timeout=2000。
5.2 创建灰度
首先点击application namespace右上角的创建灰度
按钮。
点击确定后,灰度版本就创建成功了,页面会自动切换到灰度版本
Tab。
5.3 灰度配置
点击主版本的配置
中,timeout配置最右侧的对此配置灰度
按钮
在弹出框中填入要灰度的值:3000,点击提交。
5.4 配置灰度规则
切换到灰度规则
Tab,点击新增规则
按钮
在弹出框中灰度的IP
下拉框会默认展示当前使用配置的机器列表,选择我们要灰度的IP,点击完成。
如果下拉框中没找到需要的IP,说明机器还没从Apollo取过配置,可以点击手动输入IP来输入,输入完后点击添加按钮
注:对于公共Namespace的灰度规则,需要先指定要灰度的appId,然后再选择IP。
5.5 灰度发布
配置规则已经生效,不过灰度配置还没有发布。切换到配置
Tab。
再次检查灰度的配置部分,如果没有问题,点击灰度发布
。
在弹出框中可以看到主版本的值是2000,灰度版本即将发布的值是3000。填入其它信息后,点击发布。
发布后,切换到灰度实例列表
Tab,就能看到10.32.21.22已经使用了灰度发布的值。
切换到主版本
的实例列表
,会看到主版本配置只有10.32.21.19在使用了。
后面可以继续配置的修改或规则的更改。配置的修改需要点击灰度发布后才会生效,规则的修改在规则点击完成后就会实时生效。
5.6 全量发布
如果灰度的配置测试下来比较理想,符合预期,那么就可以操作全量发布
。
全量发布的效果是:
- 灰度版本的配置会合并回主版本,在这个例子中,就是主版本的timeout会被更新成3000
- 主版本的配置会自动进行一次发布
- 在全量发布页面,可以选择是否保留当前灰度版本,默认为不保留。
我选择了不保留灰度版本,所以发布完的效果就是主版本的配置更新、灰度版本删除。点击主版本的实例列表,可以看到10.32.21.22和10.32.21.19都使用了主版本最新的配置。
5.7 放弃灰度
如果灰度版本不理想或者不需要了,可以点击放弃灰度
。
5.8 发布历史
点击主版本的发布历史
按钮,可以看到当前namespace的主版本以及灰度版本的发布历史。