企业运维训练营之云上网络原理与实践课程
第四讲配套实验:使用ALB实现灰度发布
视频地址:
https://developer.aliyun.com/learning/course/991/detail/14982
一、实验概述
灰度发布(又称为金丝雀发布)是一种平滑过渡的发布方式,将老版本应用与新版本应用同时部署在环境中,让一部分用户继续使用老版本应用,一部分用户开始使用新版本应用,然后根据用户使用情况调整新版本流量占比,逐步把所有用户都迁移到新版本应用。
实验网址
https://developer.aliyun.com/adc/scenario/exp/765f8b2b28554f518e2eaf0c1ddcda32
二、实验目的
- 掌握ALB监听配置
- 掌握ALB实现灰度发布
三、实验步骤
1. 创建资源。
a. 在体验实验室页面左侧,单击创建资源,创建所需资源。
b. 在页面左侧导航栏中,单机云产品资源列表,查看本次实验资源相关信息。
说明:
资源创建过程需要1~3分钟。完成实验资源的创建后,您可以在云产品资源列表查看已创建的资源信息,例如:IP地址、用户名和密码等。
2. 了解实验架构。
实验之前需要理解相关理论概念,然后了解整体的实验架构:
3. 实验准备。
注:后台会默认创建好对应的云产品资源,这里仅了解和核实环境和相关配置。
不同学员会有属于自己的ECS实例,请以实际配置中实例的id为准。系统默认资源自动创建过程需要1~3分钟。完成实验资源的自动创建后,您可以在“云产品资源”列表查看已创建的资源信息,例如:IP地址、用户名和密码等(注意:本实验中两台ECS密码相同)。
如下仅供学员了解和参考,不需要去手动创建(如了解,可跳过):
- 创建ECS 参考文档:https://help.aliyun.com/document_detail/25422.html
- ALB实例创建 参考文档:https://help.aliyun.com/document_detail/197341.html
本实验环境已经提前创建ALB实例和2台可以访问公网的ECS实例。ALB已经创建了两个服务器组ALB-APP-V1和ALB-APP-V2,将ECS1加入服务器组ALB-APP-V1,将ECS2加入服务器组ALB-APP-V2,监听端口都为80端口。
说明:用于本实验演示所创建的ALB公网域名是alb-1ta6kknir3839pxmip.cn-hangzhou.alb.aliyuncs.com。
用于本实验演示中两台ECS内网分别是172.16.1.163、172.16.41.238。
用于本实验演示中两台ECS公网分别是47.100.x.x、47.98.x.x。
4. 在两台ECS内安装Nginx软件。
- 使用yum安装Nginx应用:
yum -y install nginx
- 安装成功后执行如下两个命令,启用nginx:
systemctl start nginx
systemctl enable nginx
- 执行如下命令查看Nginx运行状态是否为running:
systemctl status nginx
5. 在两台服务器上部署新老两套应用。
在ECS1上部署老版本应用,在ECS2上部署新版本应用。
在/usr/share/nginx/html 目录下创建alb.html文件,本实验以不同的html文件内容区分新旧版本应用来演示。
ECS1文件内容为:APP-Old
ECS2文件内容为:APP-New
ECS1:
ECS2:
6. 创建服务器组,添加服务器。
由于资源创建权限限制,本步骤后台已经提前帮助学员完成,已创建两个服务器组ALB-APP-V1和ALB-APP-V2,将ECS1加入服务器组ALB-APP-V1,将ECS2加入服务器组ALB-APP-V2,监听端口都为80端口。
请学员点击服务器组,核实是否已正确添加ECS和对应的端口。
7. 创建HTTP监听,监听端口为80。
- 点击ALB实例,进入ALB实例页面;
- 点击 监听 标签栏 ,然后点击创建监听;
- 创建HTTP监听,监听端口为80,添加ALB-APP-V1服务器组为监听服务器组;
8. 访问老版本应用。
浏览器输入ALB分配的域名加上对应的html页面进行访问,示例URL: http://alb-xxx.cn-hangzhou.alb.aliyuncs.com/alb.html,此时可以访问到老版本业务;
9. 配置监听转发规则,基于HTTP标头实现灰度发布。
- 点击对应监听,进入监听界面;
- 点击转发规则标签页,然后点击插入新规则;
- 插入新规则,选择条件为“HTTP标头”,输入键为:User-Agent,值为:*Firefox*,则转发到ALB-APP-V2服务器组,此服务器组为新版本应用;
- 使用firefox浏览器访问到新版本应用,使用其他浏览器访问依然是老版本应用;
10. 配置监听转发规则,基于不同服务器组实现灰度发布。
- 删除上一步创建的转发规则,插入新转发规则,匹配条件是路径为/alb.html,80%请求转发到老服务器,20%请求转发到新服务器;
- 使用Firefox浏览器访问业务网站,访问10次,有8次访问到旧版本应用,2次访问到新版本应用,大概是4:1的比例。