首页 > 其他分享 >阿里云基于ALB实现灰度发布

阿里云基于ALB实现灰度发布

时间:2024-11-02 16:59:56浏览次数:1  
标签:版本 单击 ALB 阿里 灰度 应用 转发 监听

  灰度发布(又称为金丝雀发布)是一种平滑过渡的发布方式,将老版本应用与新版本应用同时部署在环境中,让一部分用户继续使用老版本应用,一部分用户开始使用新版本应用,然后根据用户使用情况调整新版本流量占比,逐步把所有用户都迁移到新版本应用。

 

1.应用场景

  互联网产品需要快速迭代开发上线,同时又要保证质量。为保证刚上线的系统出现问题后可以很快控制影响,需要设计一套灰度发布系统,按照发布策略选取部分用户流量,先行使用新版本应用,然后通过收集这部分用户对新版本应用的反馈,以及新版本应用的日志、性能、稳定性等指标来评审新版应用。根据评审情况,决定是否继续增加新版本的应用实例和流量,直至全量升级,或者发现问题后及时回滚到老版本。

 

2.准备工作

  1. 将您的老版本业务和新版本业务分别部署在不同的服务器,为了增加业务处理能力,请分别部署在多台服务器上。
  2. 创建ALB实例,基础版ALB实例不支持条件类型为Cookie的规则,需要创建标准版ALB实例。具体操作,请参见创建应用型负载均衡
  3. 创建服务器组,将承载老版本应用和新版本应用的服务器组分别加入不同的服务器组。具体操作,请参见创建和管理服务器组
  4. 创建监听,并将监听默认服务器组设置为老版本应用服务器组。具体操作,请参见添加HTTP监听添加HTTPS监听添加QUIC监听

  此时用户请求将全部转发至老版本应用。本文提供以下三种不同的灰度方式,您可以根据需要选择一种或多种搭配使用。

 

3.基于HTTP标头实现灰度发布

  本示例将用户请求中HTTP标头键是user-agent、值是*Mozilla/4.0*的访问转发至新版本应用。

  1. 登录应用型负载均衡ALB控制台
  2. 在顶部菜单栏,选择ALB实例所属的地域。
  3. 实例页面,单击目标实例ID。
  4. 监听页签,找到目标监听,然后在操作列单击查看/编辑转发规则
  5. 转发规则页签,单击插入新规则
  6. 配置转发规则,然后单击确定
  • 转发条件:在下拉列表中选择HTTP标头,然后将键设置为user-agent,值设置为*Mozilla/4.0*。
  • 转发动作:在下拉列表中选择转发至,然后选择新版本应用对应的服务器。

  更多参数说明,请参见配置监听转发规则


  
说明

  您可以根据需要增加转发条件来增加新版本应用的流量,待运行一段时间稳定后,将所有的流量从老版本应用切换到新版本应用中,平滑地将老版本应用下线。

 

4.基于Cookie实现灰度发布

  本示例将用户请求中Cookie为key:value的访问转发至新版本应用。

  1. 登录应用型负载均衡ALB控制台
  2. 在顶部菜单栏,选择ALB实例所属的地域。
  3. 实例页面,单击目标实例ID。
  4. 监听页签,找到目标监听,然后在操作列单击查看/编辑转发规则
  5. 转发规则页签,单击插入新规则
  6. 配置转发规则,然后单击确定
  • 转发条件:在下拉列表中选择Cookie,然后设置为key:value。
  • 转发动作:在下拉列表中选择转发至,然后选择新版本应用的服务器。

  更多参数说明,请参见配置监听转发规则

 

  说明

  您可以根据需要增加转发条件来增加新版本应用的流量,待运行一段时间稳定后,将所有的流量从老版本应用切换到新版本应用中,平滑地将老版本应用下线。

 

5.基于不同服务器组实现灰度发布

  本示例将域名为example.com的访问分别转发至老版本应用和新版本应用,且老版本应用和新版本应用接收的请求比重分别为80%和20%。

  1. 登录应用型负载均衡ALB控制台
  2. 在顶部菜单栏,选择ALB实例所属的地域。
  3. 实例页面,单击目标实例ID。
  4. 监听页签,找到目标监听,然后在操作列单击查看/编辑转发规则
  5. 转发规则页签,单击插入新规则
  6. 配置转发规则,然后单击确定
    • 转发条件:在下拉列表中选择域名,然后将域名设置为example.com。
    • 转发动作:在下拉列表中选择转发至,然后选择老版本应用服务器组(权重80)和新版本应用服务器组(权重20)。

  更多参数说明,请参见配置监听转发规则

  您可以根据需要调整服务器组权重来增加新版本应用的流量占比,待运行一段时间稳定后,将所有的流量从老版本应用切换到新版本应用中,平滑地将老版本应用下线。

 

 

  参考链接:https://help.aliyun.com/zh/slb/application-load-balancer/use-cases/use-alb-to-implement-canary-releases?spm=a2c4g.11186623.0.i6#section-ld2-77x-2ap

标签:版本,单击,ALB,阿里,灰度,应用,转发,监听
From: https://www.cnblogs.com/lizexiong/p/18522188

相关文章

  • 阿里国际2025届校园招聘 0826算法岗笔试
    目录1.第一题2.第二题3.第三题⏰时间:2024/08/26......
  • Spring Boot 集成阿里云直播点播
    在当今数字化时代,视频直播和点播服务已经成为许多应用的核心功能。阿里云提供了强大的直播和点播服务,能够满足各种规模的应用需求。而SpringBoot作为一种流行的Java开发框架,能够快速构建高效的应用程序。本文将详细介绍如何在SpringBoot项目中集成阿里云直播点播服务,包......
  • 阿里邮箱报错acdmodel-gemdb.dll?一文带你轻松应对阿里邮箱acdmodel-gemdb.dll报错的高
    在使用阿里邮箱时,如果遇到acdmodel-gemdb.dll报错,这可能会影响到你的邮件收发和其他相关功能。尽管acdmodel-gemdb.dll并非阿里邮箱的标准组件,但遇到此类错误时,不必过于担心。以下是一些高效且实用的解决方法,帮助你轻松应对这一报错。一、了解报错原因首先,需要明确acdmodel-......
  • 给予爱快路由器使用阿里云DDNS远程访问家庭网络
    一、阿里云域名准备1、首先需要购买一个阿里云域名,选简短好记性价比高的即可,如果域名只是用来解析路由器IP地址,不做服务器类应用,则不需要备案。 2、想做动态域名解析,光有域名还不行,还需要在阿里云控制台建立一个访问授权,路由器才能动态同步远营商的IP地址到DNS服......
  • 论阿里云NLB之于MQTT负载均衡的重要性
    论阿里云NLB之于MQTT负载均衡的重要性先看图首先看nginx下stream负载mqtt服务假设你有3个mqtt节点权重一致,假设节点1同时部署了nginx我们这里以c7cpu,4核8GB内存服务器为例。这时候,假设6万链接连进来,节点1要负载多少链接数?第1,是这6万进来的链接,6万;第2,自己消化1/3,2/3......
  • 阿里云服务器的端口有什么用
    阿里云服务器的端口在网络通信中起着重要的作用。大数据平台通常包括数据采集、数据存储、数据处理和数据分析等模块。这种平台的使阿里云服务器上的端口用于接收和发送网络数据包,以实现不同应用程序之间的通信。用,帮助企业从大数据中获取价值,提升业务效率,优化决策过程。阿里......
  • ORB-SLAM2源码学习:ORBextractor.cc:IC_Angle 利用灰度质心法求解关键点方向角
    ORB特征点:特征点是由关键点和描述子两部分组成,关键点是指特征点在图像中的位置,描述子是用来描述关键点周围的像素信息。ORB关键点是在FAST关键点的基础上进行改进给像素增加了一个主方向,称为OrientedFAST。描述子在BRIEF的基础上加入了上述的方向信息,称为SteeredBRIEF。FAS......
  • AWS 的 lambda 相当于 阿里云的什么
    AWS的Lambda服务相当于阿里云的函数计算(FunctionCompute)。两者都是无服务器(Serverless)计算平台,允许开发者无需管理底层基础设施,直接上传代码来处理事件驱动的任务。二者的相似点事件驱动:两者都可以响应不同的事件触发(例如文件上传、数据库更新、HTTP请求等),并自动执行代码......
  • mse~路由实现某个页面的灰度功能
    起因我有个网站A【蓝色服务】,要对网站A进行改版【绿色服务】,其中用户中心已经改完了,希望当用户访问时,如果http请求头中包含isGroup,并且isGroup=1时,去新的绿色服务,反之就还是去蓝色服务。前提蓝绿服务,域名是同一个,如lind.gray.com蓝绿服务,各个页面的URL是同一个用户测在访问U......
  • 阿里云 K8S ACK服务 创建使用教程
    目录1.1  阿里云容器服务ACK介绍和创建1.1.1 什么是容器服务Kubernetes版?1.1.2 创建专有版Kubernetes集群1.1.3 访问专有版Kubernetes集群1.1.4在专有版ACK集群创建资源并访问通过百度网盘分享的文件:第12章-阿里云托管k8s集群ACK创建和使用链接:https://pan.ba......