起因
我有個網站A【藍色服務】,要對網站A進行改版【綠色服務】,其中使用者中心已經改完了,希望當使用者訪問時,如果http請求頭中包含isGroup,並且isGroup=1時,去新的綠色服務,反之就還是去藍色服務。
前提
- 藍綠服務,域名是同一個,如
lind.gray.com
- 藍綠服務,各個頁面的URL是同一個
- 使用者測在訪問URL時,它們不清楚將要到哪個環境,藍綠環境是在閘道器路由中轉發的
藍綠部署
藍綠部署(Blue-Green Deployment)是一種軟體釋出策略,旨在減少系統停機時間和風險,同時確保使用者體驗的連續性。以下是關於藍綠部署的一些關鍵點:
藍綠部署的基本概念
環境劃分:
- 在藍綠部署中,通常會有兩個相同的生產環境:一個是“藍色”環境,另一個是“綠色”環境。
- “藍色”環境當前正在處理所有的生產流量,而“綠色”環境則用於新版本的部署和測試。
切換流量:
- 當新的應用版本在“綠色”環境中經過充分測試後,可以透過改變負載均衡器的配置,將流量從“藍色”環境切換到“綠色”環境。
- 這種切換可以迅速完成,從而最小化使用者感知到的中斷。
回滾機制:
- 如果在“綠色”環境中發現問題,可以快速將流量切回“藍色”環境,實現無縫回滾,保障系統的穩定性。
MSE上的實踐
一 進行藍色和綠色服務裡,在路由中開啟灰度釋出,配置灰度策略,可在一個綠色服務中配置即可
二 如果希望對某個頁面進行藍綠部署,如/user/center
使用者中心實現它,你需要下面的操作
- 新增新的路徑,域名還是之前的,如
lind.gray.com
- 配置路徑標識:/user/center,藍綠兩個服務都要配置
- 配置灰度策略,藍色服務,不用配置
- 綠色服務,需要開啟灰度釋出,並新增策略,如header中包含isGroup=1的值,走綠色新的服務,
綠色服務的路由裡,只配置具體要灰度的頁面即可,如果要求全站都灰色,路徑就是/即可
測試
- 當你訪問
lind.gray.com
時,直接訪問藍色,老版服務 - 當你訪問
lind.gray.com/user/center
時,還是直接訪問藍色,老版服務 - 當你訪問
lind.gray.com/user/center
,並且在http請求頭中包含isGroup=1時,會訪問綠色,新版服務的/user/center頁面