基於Rainbond實現微服務的滾動發佈,藍綠髮布及灰度發佈

概述

本文檔講述基於Rainbond實現微服務常見的三種發佈方式,滾動發佈,藍綠髮布及灰度發佈的原理、思路、及具體方式。ios

一. 滾動發佈

Rainbond平臺無狀態應用滾動更新與有狀態應用滾動更新區別:web

**無狀態應用:**滾動更新時,首先會生成新的實例,新的實例啓動後在後臺運行,平臺會使用健康監測機制去監聽端口,判斷新實例內應用是否運行正常,一旦監聽到應用運行正常,就會上線新的應用,銷燬舊的應用,以此完成滾動發佈的流程。app

**有狀態應用:**若是是非集羣化的應用,生成新的實例前,舊的實例會中止運行,待新的實例更新完畢,舊的實例會被廢除,若是是集羣化的應用,沒必要擔憂服務會中斷,能夠進行分批次更新。以保障服務的運行。微服務

Rainbond平臺滾動發佈實踐測試

這裏以無狀態應用爲例3d

  • 切換構建源

  • 切換代碼分支

  • 從新檢測

  • 伸縮實例數量

  • 開始構建

  • 此時就會產生兩個新的實例,查看新的實例是否被建立,若新實例內應用運行正常,舊的實例將會被廢除,新的版本上線完成

  • 此時再查看構建歷史記錄,能夠回滾到構建成功的任意版本

二. 藍綠髮布

藍綠部署是不停老版本,部署新版本而後進行測試,確認OK,將流量切到新版本,而後老版本同時也升級到新版本。blog

基於權重使用平臺網關功能的藍綠髮布實踐文檔

  • web服務綁定域名
Web服務 域名 權重
Web V1 www.test.com 100
Web V2 www.test.com 0
  • 經過 應用網關->訪問控制 分別下降和升高權重,便可實現版本間的切換 部署

  • 取消Web V1的權重get

  • 調整Web V2的權重

此時查看流量已經轉移到Web V2,藍綠髮布已經完成。

更多關於應用網關,訪問控制介紹請參閱應用網關 訪問策略

三. 灰度發佈

灰度發佈是指在黑與白之間,可以平滑過渡的一種發佈方式。灰度發佈能夠保證總體系統的穩定,在初始灰度的時候就能夠發現、調整問題,以保證其影響度。

基於權重的灰度發佈實踐

從流量的維度進行控制,好比開始先 10%流量切換到新版本,後續逐步增長這個權重,在正常的狀況下直到舊版權重較少到 0;即完成了灰度發佈。

依然經過 應用網關 -> 訪問策略添加如下兩個HTTP訪問策略:

Web服務 域名 權重
Web V1 www.test.com 90
Web V2 www.test.com 10

根據須要逐步減小Web V1權重,增長Web V2權重,直到Web V1權重減小到0便可。

更多關於應用網關,訪問控制介紹請參閱應用網關 訪問策略

四. A/B測試實踐

關於Rainbond的應用A/B測試操做方案請參閱 A/B測試實踐

相關文章
相關標籤/搜索