全部产品
云市场

灰度发布简介

更新时间:2019-08-27 21:27:23

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

使用场景

  • 单应用升级

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

  • 多应用问题排查

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

基本概念

入口应用与灰度规则

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

全链路灰度发布示意

  • 对于 HTTP 流量,在流量进入该入口应用之后才会执行灰度判断。如果符合规则条件,就会将其标记为对应的灰度。简单地说,就是只做灰度判断。

    注意:

    • 此处仅仅是对已收到的 HTTP 流量进行灰度判断,全链路灰度目前还不支持 HTTP 流量的灰度路由。实际是在入口应用处根据 HTTP 流量判断灰度,对之后各环节产生的所有 HSF 流量进行灰度路由。

    • 和全链路灰度发布不同,单个应用的 HTTP 流量控制规则是针对应用分组的,不只做灰度判断,也会进行灰度路由。

  • 对于 HSF 流量,在流量进入该入口应用之前就会执行灰度判断,并且进行标准的灰度路由处理。如果入口应用有属于当前灰度的应用分组实例,灰度流量就会直接路由到该灰度分组,否则灰度流量就会降级处理,路由到该入口应用的非灰度默认分组。简单地说,就是既做灰度判断,又进行灰度路由。

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

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

灰度环境

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

灵活特性

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

  • 只需为要求灰度的部分应用准备实例资源,不用将业务系统整体再搭建一套。

  • 支持多重灰度,允许不同的应用有各自不同的灰度控制,甚至允许同一个应用同时参与多个灰度控制。

  • 支持链路灰度,允许多个应用同处于一个灰度控制,上游环节识别出来的灰度流量,经过非灰度的中间应用环节,在下游环节仍可路由到对应的灰度应用实例。