五、灰度发布使用指南

    • 对于一些对程序有比较大影响的配置,可以先在一个或者多个实例生效,观察一段时间没问题后再全量发布配置。

    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。initial-config

    5.2 创建灰度

    首先点击application namespace右上角的按钮。

    点击确定后,灰度版本就创建成功了,页面会自动切换到灰度版本Tab。

    initial-gray-release-tab

    点击主版本的配置中,timeout配置最右侧的对此配置灰度按钮

    在弹出框中填入要灰度的值:3000,点击提交。

    submit-gray-release-config

    5.4 配置灰度规则

    切换到灰度规则Tab,点击按钮

    new-gray-release-rule

    gray-release-ip-selected

    如果下拉框中没找到需要的IP,说明机器还没从Apollo取过配置,可以点击手动输入IP来输入,输入完后点击添加按钮

    manual-input-gray-release-ip

    配置规则已经生效,不过灰度配置还没有发布。切换到配置Tab。

    再次检查灰度的配置部分,如果没有问题,点击灰度发布

    prepare-to-do-gray-release

    在弹出框中可以看到主版本的值是2000,灰度版本即将发布的值是3000。填入其它信息后,点击发布。

    发布后,切换到灰度实例列表Tab,就能看到10.32.21.22已经使用了灰度发布的值。

    切换到的实例列表,会看到主版本配置只有10.32.21.19在使用了。

    master-branch-instance-list

    后面可以继续配置的修改或规则的更改。配置的修改需要点击灰度发布后才会生效,规则的修改在规则点击完成后就会实时生效。

    5.6 全量发布

    如果灰度的配置测试下来比较理想,符合预期,那么就可以操作全量发布

    全量发布的效果是:

    • 灰度版本的配置会合并回主版本,在这个例子中,就是主版本的timeout会被更新成3000
    • 在全量发布页面,可以选择是否保留当前灰度版本,默认为不保留。

    full-release-confirm-dialog

    我选择了不保留灰度版本,所以发布完的效果就是主版本的配置更新、灰度版本删除。点击主版本的实例列表,可以看到10.32.21.22和10.32.21.19都使用了主版本最新的配置。

    master-branch-instance-list-after-full-release

    如果灰度版本不理想或者不需要了,可以点击放弃灰度

    5.8 发布历史

    点击主版本的发布历史按钮,可以看到当前namespace的主版本以及灰度版本的发布历史。

    view-release-history