mse~路由實現某個頁面的灰度功能
起因
我有個網站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頁面
浙公網安備 33010602011771號