全部产品
云市场

灰度发布的约束限制

更新时间:2019-08-05 21:47:42

全链路灰度提供了灵活的灰度发布方式,同时也有一些限制以及约定。

应用实例分组的归属灰度唯一

如果一个应用实例分组同时属于多个灰度环境,会造成流量控制冲突。所以,在全链路灰度中,一个应用实例分组只能属于一个灰度环境。

说明:单个应用流量控制里对应用分组启用 HSF 流量规则后,实际上也会创建一个灰度环境来容纳这个应用分组。

流量灰度属性唯一

当一个流量已经被标记属于某个灰度以后,不会因为符合其它灰度规则的条件被覆盖标记成为其它灰度。

灰度规则生效优先级

同一个应用可能会作为多个灰度环境的入口应用,可能会有流量同时符合多个灰度规则的情况。根据上面流量灰度属性唯一的限制,需要设置多个灰度规则的生效优先策略。目前的约定是按规则的创建、变更时间来判定,后创建或者后变更的灰度规则优先。

单应用流量控制与全链路灰度发布的关联限制

一个应用可能同时使用单应用流量控制和全链路灰度发布。正如灰度发布简介中的例子所示,应用 C 的实例分组 C1 定义了一个单应用流量控制,而实例分组 C2 则参与了涉及多个应用的全链路灰度。

单应用流量控制中设置 HSF 规则相当于创建了一个灰度,而同一个应用分组不能属于两个灰度。因此当一个应用分组(例如上图中的 C2)已经加入到某个全链路灰度环境中,就不允许再在单应用流量控制中单独设置 HSF 规则。同样,如果一个应用分组(例如上图中的 C1)已经设置了自己的 HSF 规则,就不允许加入另外一个全链路灰度。

单应用流量控制中,入口应用同一入口端点规则唯一

单应用流量控制中,对同一个应用的 HTTP 规则和 HSF 规则有唯一性限制,实际上一个“入口端点”只允许一个规则定义。关于入口端点的定义:

  • 对于 HTTP 协议,一个端点指的是一个应用,一个应用只有一个分组能设置;
  • 对于 HSF 协议,一个端点指的是一个应用接口里的一个方法。

在单应用流量控制里,一个应用不能制定多个 HTTP 规则,一个应用的一个接口方法,不能出现在多个 HSF 规则中。