通过ELB的高级转发策略实现新旧版本应用平滑过渡
应用场景
随着公司业务发展,需要用新版本应用替换旧版本应用,使用高级转发策略可以实现旧版本应用向新版本应用平滑过渡。将旧版本应用和新版本应用同时部署在环境中,让一部分用户使用旧版本应用,一部分用户使用新版本应用,然后根据用户使用情况,调整优化新版本应用,逐步将所有用户均迁移至新版本应用。
前提条件
已申请了6台ECS,将您的旧版本业务和新版本业务各自部署在3台服务器上。
操作流程
资源名称 |
资源类型 |
说明 |
---|---|---|
ELB-Test |
独享型ELB |
独享型ELB支持高级转发策略,因此需创建独享型ELB实例。 |
Server_Group-Test01 |
后端服务器组 |
用于管理部署了旧版本业务的ECS。 |
Server_Group-Test02 |
后端服务器组 |
用于管理部署了新版本业务的ECS。 |
ECS01 |
弹性云服务器 |
上面部署了旧版本业务,添加至Server_Group-Test01。 |
ECS02 |
弹性云服务器 |
上面部署了旧版本业务,添加至Server_Group-Test01。 |
ECS03 |
弹性云服务器 |
上面部署了旧版本业务,添加至Server_Group-Test01。 |
ECS04 |
弹性云服务器 |
上面部署了新版本业务,添加至Server_Group-Test02。 |
ECS05 |
弹性云服务器 |
上面部署了新版本业务,添加至Server_Group-Test02。 |
ECS06 |
弹性云服务器 |
上面部署了新版本业务,添加至Server_Group-Test02。 |
本最佳实践中,独享型ELB和ECS均在同一VPC中。在实际应用中,如果您的ECS和ELB不在同一VPC中,可以跨VPC添加ECS至ELB的后端服务器组中,详细请参考通过IP类型后端功能添加服务器至ELB。
步骤一:创建HTTP监听器并开启高级转发策略
- 登录华为云管理控制台。
- 在管理控制台左上角单击图标,选择区域和项目。
- 单击页面左上角的,选择“网络 > 弹性负载均衡”。
- 单击右上角的“购买弹性负载均衡”。
- 根据表1创建独享型负载均衡ELB-Test,根据需要设置相关参数。
- 实例规格类型:独享型
- 名称:ELB-Test
- 其他参数根据需要设置,详见创建独享型负载均衡器。
- 独享型ELB创建成功后,在ELB-Test中添加HTTP监听器。详见添加监听器。
- HTTP监听器创建成功后,开启高级转发策略。详见高级转发策略。
图2 开启高级转发策略
步骤二:创建后端服务器组并添加后端服务器
- 登录管理控制台。
- 在管理控制台左上角单击图标,选择区域和项目。
- 单击页面左上角的,选择“网络 > 弹性负载均衡”。
- 在左侧导航栏,选择“ 弹性负载均衡 > 后端服务器组”。
- 在“后端服务器组”界面,单击页面右上角“创建后端服务器组”按钮
- 名称:Server_Group-Test01
- 所属负载均衡器:选择关联已有ELB-Test
- 后端协议:HTTP
- 其他参数根据需要设置。
- 参考步骤5再添加后端服务器组Server_Group-Test02。
- 单击后端服务器组Server_Group-Test01名称,添加ECS01、ECS02、ECS03至Server_Group-Test01。
- 单击后端服务器组Server_Group-Test02名称,添加ECS04、ECS05、ECS06至Server_Group-Test02。
基于HTTP请求方法实现新旧版本应用平滑过渡
通过配置转发规则为“HTTP请求方法”的高级转发策略,实现将来自客户端的GET和DELETE请求转发至旧版本应用上,将来自客户端的POST和PUT请求转发至新版本应用上。以此种方式运行一段时间后,确认新版本应用无问题后,再将所有请求全部切换至新版本应用。
- 单击上述创建的独享型负载均衡ELB-Test名称。
- 在“监听器”页签,单击上述创建的HTTP监听器名称。
- 切换至右边的“转发策略”页面,单击“添加转发策略”。
转发至旧版本应用:在下拉列表中选择“HTTP请求方法”,选择“GET”和“DELETE”,动作选择“转发至后端服务器组”,后端服务器组选择“Server_Group-Test01”。
图4 基于HTTP请求方法将部分请求转发至旧版本应用上
- 单击“保存”。
- 参考以上步骤再添加一个转发策略,实现将请求转发至新版本应用上。
转发至新版本应用:在下拉列表中选择“HTTP请求方法”,选择“PUT”和“POST”,动作选择“转发至后端服务器组”,后端服务器组选择“Server_Group-Test02”。
图5 基于HTTP请求方法将部分请求转发至新版本应用上
基于HTTP请求头实现新旧版本应用平滑过渡
公司的应用分为中文和英文两个语言,通过配置转发规则为“HTTP请求头”的高级转发策略,实现将来自客户端的英文请求转发至旧版本应用上,将来自客户端的中文请求转发至新版本应用上。以此种方式运行一段时间后,确认新版本应用无问题后,再将所有请求全部切换至新版本应用。
- 单击上述创建的独享型负载均衡ELB-Test名称。
- 切换至“监听器”页签,单击上述创建的HTTP监听器名称。
- 切换至右边的“转发策略”页面,单击“添加转发策略”。
转发至旧版本应用:在下拉列表中选择“HTTP请求头”,键是“Accept-Language”,值是“en-us”,动作选择“转发至后端服务器组”,后端服务器组选择“Server_Group-Test01”。
图7 基于HTTP请求头将部分请求转发至旧版本应用上
- 单击“保存”。
- 参考以上步骤再添加一个转发策略,实现将请求转发至新版本应用上。
转发至新版本应用:在下拉列表中选择“HTTP请求头”,键是“Accept-Language”,值是“zh-cn”,动作选择“转发至后端服务器组”,后端服务器组选择“Server_Group-Test02”。
图8 基于HTTP请求头将部分请求转发至新版本应用上
基于查询字符串实现新旧版本应用平滑过渡
公司的应用部署在区域1和区域2,通过配置转发规则为“查询字符串”的高级转发策略,实现将客户端对区域1业务的请求转发至旧版本应用上,将客户端对区域2业务的请求转发至新版本应用上。以此种方式运行一段时间后,确认新版本应用无问题后,再将所有请求全部切换至新版本应用。
- 独享型负载均衡器支持跨区域、跨VPC添加后端服务器。
- 该方案需要先使用云连接服务连通区域1和区域2,然后再使用独享型ELB的跨VPC后端功能将区域1和区域2中的服务器分别添加至ELB的后端服务器组01和后端服务器02中。
- 单击上述创建的独享型负载均衡ELB-Test名称。
- 在“监听器”页签,单击上述创建的HTTP监听器名称。
- 切换至右边的“转发策略”页面,单击“添加转发策略”。
转发至旧版本应用:在下拉列表中选择“查询字符串”,键是“region”,值是“region01”,动作选择“转发至后端服务器组”,后端服务器组选择“Server_Group-Test01”。
图10 基于查询字符串将部分请求转发至旧版本应用上
- 单击“保存”。
- 参考以上步骤再添加一个转发策略,实现将请求转发至新版本应用上。
转发至新版本应用:在下拉列表中选择“查询字符串”,键是“region”,值是“region02”,动作选择“转发至后端服务器组”,后端服务器组选择“Server_Group-Test02”。
图11 基于查询字符串将部分请求转发至新版本应用上