系統(tǒng)架構(gòu)設(shè)計(jì):平滑發(fā)布和ABTesting
平滑發(fā)布的介紹
背景
單位的云辦公相關(guān)系統(tǒng)沒有成熟的平滑發(fā)布方案,導(dǎo)致每一次發(fā)布都是直接發(fā)布,dll文件或配置文件的變更會引起站點(diǎn)的重啟。
實(shí)施方案
1、跟nginx代理服務(wù)器約定了一個(gè)健康檢查的接口
發(fā)布流程
目的主要是為了發(fā)布的時(shí)候能夠平滑發(fā)布,所以QA與開發(fā)人員在發(fā)布得時(shí)候按照如下步驟操作:
進(jìn)一步ABTesting的優(yōu)化
背景
平滑發(fā)布做完之后,確實(shí)給我?guī)砗艽蟮谋憷?,不用每次發(fā)布都發(fā)公告,不重要的或者非功能性的內(nèi)容發(fā)布了就是了。
1、Nginx反向代理:來路IP策略
流程
步驟
1、進(jìn)入云辦公系統(tǒng),進(jìn)入Nginx反代服務(wù)器
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;}}
優(yōu)缺點(diǎn)
1、配置簡單,原資源平臺的灰度升級就是根據(jù)IP名單來劃分設(shè)計(jì)升級的
2、Nginx反向代理:$.Cookies策略
流程
步驟
1、進(jìn)入云辦公系統(tǒng),進(jìn)入Nginx反代服務(wù)器
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;}}
優(yōu)缺點(diǎn)
1、配置簡單,根據(jù)Nginx的 $COOKIE_version 屬性來判斷
3、AB集群 業(yè)務(wù)代理方式
流程
優(yōu)缺點(diǎn)
1、與Nginx剝離,不用依賴公司的通用平臺和技術(shù)部的實(shí)現(xiàn)
應(yīng)用
目前手上2個(gè)系統(tǒng)已經(jīng)根據(jù)該方案實(shí)現(xiàn)了