阿里云国际站经销商,主营阿里云,腾讯云,华为云,亚马逊aws,谷歌云gcp,微软云az,免费开户,代充值优惠大,联系客服飞机@jkkddd


线上场景:基于Ingress网关实现全链路灰度

本文介绍如何通过ALB Ingress网关,在不需要修改您的任何业务代码的情况下,为您的SAE应用实现全链路流量控制。
背景信息
微服务架构下,有些开发需求会导致微服务调用链路上的多个微服务同时发生改动,通常每个微服务都会有灰度环境或分组来接收灰度流量。此时希望进入上游灰度环境的流量,也能进入下游灰度的环境中,确保1个请求始终在灰度环境中传递,即使这个调用链路上有一些微服务没有灰度环境。通过SAE提供的全链路灰度能力,能够在不需要修改任何您的业务代码的情况下,轻松实现上述能力。
准备工作
本文通过示例为您演示ALB网关全链路灰度功能。假设应用的架构由ALB网关以及后端的微服务架构(Spring Cloud)组成,后端调用链路有3个微服务:购物车(A)、交易中心(B)、库存中心(C),可以通过客户端或HTML来访问后端服务,这些服务之间通过Nacos注册中心实现服务发现。
部署SAE Demo应用
下载Demo。
部署主干链路应用。
部署主干链路应用(A、B、C)。具体操作,请参见将Spring Cloud应用托管到SAE。
部署灰度链路应用(A-gray、B-gray、C-gray),在启动命令中添加启动参数-Dalicloud.service.tag=gray用于区别主干链路应用。
部署Ingress网关路由
应用可以使用相同域名,通过不同路径流量转发实现请求路由分发。具体操作,请参见为应用配置网关路由(ALB)和为应用配置网关路由(CLB)。
为流量配置特定Header实现全链路灰度

有些客户端无法改写域名,希望能在访问www.base.com时,通过传入不同的Header来路由到灰度环境。例如下图中,通过添加x-mse-tag:gray这个Header,来访问灰度(gray)环境。