全链路灰度发布

全链路灰度发布主要专注于整个调用链,关注重心不再是链路上经过具体哪些服务,流量控制视角由服务移至请求链路,仅需要少量治理规则即可构建从网关到整个后端服务的多个流量隔离环境,从而有效保证了多个亲密关系的服务顺利安全发布以及服务多版本并行开发,进一步促进业务的快速发展。

灰度链路图

全链路灰度发布配合 SOFA 微服务体系与网关,打造一条独立 RPC 调用通道,通过精细化流量切分保证用户在影响可控的情况下,对于多微服务组成的链路进行验证,同时提供链路观测确保流量的可观测性。

1

前提条件

已创建应用服务

创建全链路灰度发布单

  1. 登录控制台,在左侧导航栏单击 发布运维 > 发布单

  2. 在发布部署大盘,单击 创建发布单

  3. 创建发布单 页,填写以下发布信息。

    1. 完成基础信息配置后,单击 下一步

      配置项

      说明

      标题

      必填。填写发布单标题。

      类型

      选择 全链路灰度发布

      灰度标签

      必填。填写灰度标签时,须遵循以下命名规则:

      • 允许包含小写字母、数字、连字符且必须以小写字母开头、以小写字母或者数字结尾。

      • 灰度标签不能为 default。

      对接网关

      目前仅支持 SOFA_APIGATEWAY

      场景规则

      填写 header 参数和值,支持添加多个灰度流量规则。也可以在灰度发布执行期间调整规则,相关操作请参见步骤 5。

      设置灰度流量规则后,灰度链路会精确匹配这个网关的规则,只有符合这个规则的流量才会路由到灰度链路上。

      命名空间

      选择待发布的应用服务所属的命名空间。

      应用服务发布列表

      待选应用服务列表 中选择需要的应用服务,单击 添加 将应用服务添加到 已选应用服务列表 中。

      说明

      如果应用服务存在多个提交版本,需要选择要发布的版本。默认选择最新的版本。

      副本伸缩策略配置

      按需勾选部署单元并将对应的副本数修改为期望数值。

    2. (可选)完成高级设置。设置应用服务依赖关系,并且可以按需选择已创建的发布模板。

  4. 预览 页面确认信息无误后,单击 创建。系统会自动跳转到 发布单详情 页面,单击 整体发布 开始发布。

    1

  5. (可选)发布执行期间可根据需要调整灰度流量规则。

    1. 发布单详情 页,单击 调整规则

    2. 调整规则 面板,根据需要调整灰度规则流量规则,具体操作可参考下表。

      操作项

      说明

      修改规则

      场景规则 区域,修改 header 参数和值。

      修改后,带有修改后的 header 可以访问到灰度 Pod。

      添加规则

      场景规则 区域,单击 添加 1 行数据,完成 header 参数和值的填写。

      添加后,带有新增 header 访问到灰度 Pod,其他 header 也可以访问到灰度 Pod。

      删除规则

      场景规则 区域,找到需要删除的规则,完成 header 参数和值的填写。

      带有删除的 header 会访问到 default Pod,带有其他已存 header 访问到灰度 Pod。

      1
    3. 单击 确定

  6. (可选)全链路灰度发布单执行完成后,查看发布单详情,如下图所示。

    1

    发布单详情 页,单击应用服务卡片,可查看对应的应用服务执行详情,如下图所示。

    2

其他操作

  • 全链路灰度发布单创建完成后,如需中止灰度发布,可单击 取消。具体操作步骤与普通发布的相同,请参见 取消发布。

  • 配置应用服务的部署和调度策略时,若开通了 Beta 确认功能,在应用服务发布时,单击 Beta 确认,使应用继续分组发布。具体操作步骤与普通发布的相同,请参见 Beta 确认

  • 如果全链路灰度发布发失败,可单击 回滚 继续进行操作。具体操作步骤与普通发布的相同,请参见 重试回滚

  • 发布过程中或完成后,您可以查看 Pod 事件,了解 Pod 的调度与运行状态。具体操作步骤与普通发布的相同,请参见 查看 Pod 事件。