灰度发布是服务治理领域中最重要的策略之一。当需要上线新的功能时,您可以使用灰度发布功能在小范围内进行新版本测试,待验证通过后再进行全量升级。本文以Spring Cloud微服务应用为例,介绍在Serverless应用引擎SAE(Serverless App Engine)灰度发布微服务的操作步骤。
前提条件
已在SAE创建并部署Spring Cloud或Dubbo微服务应用,其中包含1个Consumer应用和1个Provider应用。具体操作,请参见以下文档:
Consumer应用和Provider应用的示例工程如下:
背景信息
Consumer应用调用Provider应用时,Provider应用有版本V1和版本V2。通过创建灰度规则,指定Header的Version参数为V1的流量都灰度到Provider应用的V1版本。灰度发布微服务流程,如下图所示:

使用限制
Spring Cloud微服务应用需要使用JAR包或者镜像方式部署。使用WAR包部署会导致配置不生效。
步骤一:创建灰度规则
- 登录SAE控制台。
- 在左侧导航栏,选择 ,在顶部菜单栏选择地域,然后单击具体应用名称。
- 在左侧导航栏,单击灰度规则,然后在灰度规则页面,单击新建灰度规则。
- 在新建灰度规则面板,执行以下操作,然后单击确定。
SAE支持的灰度规则是按内容灰度,您所需配置的信息会因应用框架而异。
创建成功后,可以在灰度规则页面,查看刚创建的灰度规则。同时,新建灰度规则按钮已置灰。单击目标规则名称,可以在灰度规则详情面板,查看规则内容。
步骤二:配置灰度发布策略
- 登录SAE控制台。
- 在左侧导航栏,选择 ,在顶部菜单栏选择地域,然后单击具体应用名称。
- 在基本信息页面右上角,单击部署应用。
- 配置部署参数。说明 部署方式由应用首次部署方式决定,请根据所需的部署方式设置参数。
- WAR包部署:重新上传WAR包或者输入新部署WAR包的地址,并完成相关环境和参数设置。
- JAR包部署:重新上传JAR包或者输入新部署JAR包的地址,并完成相关环境和参数设置。
- 镜像:在配置镜像区域,单击修改镜像,在修改镜像面板,重新选择镜像仓库或镜像版本。
- 在发布策略设置区域,配置灰度发布信息。
配置项 说明 发布策略 选择灰度发布。 灰度数量 设置首先需要进行灰度发布的应用实例数量。 灰度后剩余批次 灰度发布后,剩余的应用实例按照设定的批次完成发布。 分批间处理方式 当剩余批次大于1时需要配置。选择自动或手动。 分批间隔时间 当分批间处理方式选择自动时需要配置。单位为分钟,取值范围为[0,30]。 批次内部署间隔 每一批内,如果应用实例数大于1,应用实例间的部署时间间隔。单位为秒。 最小存活实例数 每次滚动升级最小存活的实例数。
- 按个数:输入最小存活实例数。您也可以选中使用系统推荐值,即取现有实例数的25%。
- 按比例:输入百分比。
说明- 每次滚动部署最小存活的实例数建议≥1,保证业务不中断。如果设置为0,应用在升级过程中将会中断业务。
- 以百分比计算时需向上取整。例如设置为25%,如果当前为5个实例,则最小存活实例数为2。
启用微服务灰度规则 您为Spring Cloud或Dubbo应用创建的灰度规则。具体操作,请参见管理灰度规则(Java)。 - 单击确认完成发布设置。
- 选择以下任一方式验证发布结果。
- 方法一:在应用的变更记录页面中查看应用变更详情,查看发布状态,如果所有批次都执行成功,则说明应用更新成功。
- 方法二:在应用基本信息页面的实例部署信息页签查看实例的运行状态。如果执行状态显示为Running,且实例的版本已变更,表示应用部署成功。
步骤三:通过Consumer访问验证
通过请求Consumer应用访问Provider应用,验证流量灰度发布到了指定实例。具体操作,请参见使用Webshell诊断应用。
