灰度发布是指在应用的新、旧版本间平滑过渡的一种发布方式。EDAS支持单应用的灰度流量控制和多应用的全链路流量控制。

使用场景

您可以基于HTTP和HSF两种方式完成单应用和多应用的流量控制。

  • 单应用升级

    应用迭代过程中会不断有新版本发布,在正式发布前,可以使用流量控制先进行小规模灰度验证,通过收集使用体验的数据,对应用新版本的功能、性能、稳定性等指标进行评判,然后再全量升级。

  • 多应用问题排查

    当部署在EDAS中的HSF微服务应用出现问题时,可以通过全链路流量控制将特定流量引入到某个应用,排查链路中具体应用的问题,保证整个微服务应用正常运行。

入口应用与流量控制规则

在全链路流量控制中首先要指定入口应用,并根据HTTP和HSF设置各自的流量控制规则。入口应用和灰度流量控制规则作用如下图所示。

edas-appmgmt-canary-multipleApp-flow.png
  • 对于HTTP流量,在流量进入该入口应用之后才会执行灰度判断。如果符合规则条件,就会将其标记为对应的灰度。简单地说,就是只做灰度判断。
    注意
    • 此处仅仅是对已收到的HTTP流量进行灰度判断,全链路流量控制目前还不支持HTTP流量的灰度路由。实际是在入口应用处根据HTTP流量判断灰度,对之后各环节产生的所有HSF流量进行灰度路由。
    • 和全链路流量控制不同,单个应用的HTTP流量控制规则是针对应用分组的,不只做灰度判断,也会进行灰度路由。
  • 对于HSF流量,在流量进入该入口应用之前就会执行灰度流量判断,并且进行标准的灰度路由处理。如果入口应用有属于当前灰度的应用分组实例,灰度流量就会直接路由到该灰度分组,否则灰度流量就会降级处理,路由到该入口应用的非灰度默认分组。简单地说,就是既做灰度判断,又进行灰度路由。

    灰度规则的设置和在单应用流量控制中是类似的,不同的是在灰度中可以设置多条规则。

    • 每个规则都要指定流量协议类型,有HTTP和HSF两种类型。
    • 每个规则都可以有多项规则条件,相互之间是“与”或者“或”的关系。

流量控制环境

EDAS通过定义流量控制环境来管理灰度发布。流量控制环境包含入口应用、识别规则,同时也是一个逻辑空间概念,容纳同处于该流量控制环境的应用实例分组。因此,也可以将应用的某个实例分组(非默认分组)添加或移出某个流量控制环境。

灵活特性

EDAS全链路流量控制方案能够通过控制台实现灰度发布和流量管控,具有以下灵活特性:

  • 只需为要求灰度的部分应用准备实例资源,不用将业务系统整体再搭建一套。
  • 支持多重灰度,允许不同的应用有各自不同的灰度控制,甚至允许同一个应用同时参与多个灰度控制。
  • 支持链路灰度,允许多个应用同处于一个流量控制环境,上游环节识别出来的灰度流量,经过非灰度的中间应用环节,在下游环节仍可路由到对应的灰度应用实例。