系统架构设计:平滑发布和ABTesting
扫描二维码
随时随地手机看文章
平滑发布的介绍
背景
单位的云办公相关系统没有成熟的平滑发布方案,导致每一次发布都是直接发布,dll文件或配置文件的变更会引起站点的重启。
实施方案
1、跟nginx代理服务器约定了一个健康检查的接口
发布流程
目的主要是为了发布的时候能够平滑发布,所以QA与开发人员在发布得时候按照如下步骤操作:
进一步ABTesting的优化
背景
平滑发布做完之后,确实给我带来很大的便利,不用每次发布都发公告,不重要的或者非功能性的内容发布了就是了。
1、Nginx反向代理:来路IP策略
流程
步骤
1、进入云办公系统,进入Nginx反代服务器
set $group default;if ($remote_addr in iplist) {set $group ACluster;}
location / { proxy_pass http://$group;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;index index.html index.htm;}}
优缺点
1、配置简单,原资源平台的灰度升级就是根据IP名单来划分设计升级的
2、Nginx反向代理:$.Cookies策略
流程
步骤
1、进入云办公系统,进入Nginx反代服务器
set $group default;if ($http_cookie ~* "version=V1.0"){set default;}if ($http_cookie ~* "version=V1.1"){set $group ACluster;}
location / { proxy_pass http://$group;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;index index.html index.htm;}}
优缺点
1、配置简单,根据Nginx的 $COOKIE_version 属性来判断
3、AB集群 业务代理方式
流程
优缺点
1、与Nginx剥离,不用依赖公司的通用平台和技术部的实现
应用
目前手上2个系统已经根据该方案实现了