如何用istio實現應用的灰度釋出

雲容器大師發表於2018-11-21

 

Istio為使用者提供基於微服務的流量治理能力。Istio允許使用者按照標準制定一套流量分發規則,並且無侵入的下發到例項中,平滑穩定的實現灰度釋出功能。

基於華為雲的Istio服務網格技術,使得灰度釋出全流程自動化管理:

  • 灰度版本一鍵部署,流量切換一鍵生效
  • 配置式灰度策略,支援流量比例、請求內容(Cookie、OS、瀏覽器等)、源IP
  • 一站式健康、效能、流量監控,實現灰度釋出過程量化、智慧化、視覺化

Istio服務網格為應用治理提供的灰度釋出功能,穩定高效地推動企業應用的迭代升級。使用者無需使用繁瑣的命令列配置,而是通過清晰友好的圖形介面,輕鬆直觀地完成灰度釋出整個過程(如圖1)。灰度釋出內建金絲雀、藍綠、A/B Testing等典型灰度釋出功能,下面以金絲雀釋出為例介紹如何使用Istio服務進行一次灰度釋出。

 

Figure 1 灰度版本釋出流程

假設,使用者已經擁有了一個穩定執行的應用,以Bookinfo程式為例,使用者通過【應用管理】下的【應用部署】功能已經部署了Bookinfo程式(如圖2)。

 

Figure 2 Bookinfo示例程式

1.    建立金絲雀釋出任務

點選【應用管理】下的【灰度釋出】欄,可以檢視進行中的釋出任務、歷史釋出任務和建立新的釋出任務(如圖3)。點選“金絲雀釋出”卡片上的“建立”按鈕,跳轉至“建立釋出任務”介面,選擇灰度釋出元件reviews,填寫釋出任務名稱、版本號和版本描述,並點選“建立”按鈕。

 

Figure 3 灰度釋出任務卡片

 

Figure 4 建立灰度釋出任務

2.    部署灰度版本

灰度版本會繼承當前線上版本的所有配置,如資源限制、環境變數等,預設會選擇一個最新的映象版本。使用者只需最少量的輸入即可,如編輯待部署的灰度版本的例項數量和例項的映象配置(包括映象版本和映象高階設定),點選“部署灰度版本”按鈕,一鍵式部署版本(如圖5)。

 

Figure 5 部署灰度版本

3.    檢視灰度版本狀態

當使用者配置好灰度策略後,可以通過介面實時監控灰度版本的狀態,具體包括例項的健康監控資訊、效能監控資訊和啟動日誌。待版本啟動進度達到100%時,“配置灰度策略”按鈕被啟用,可點選跳轉至下一步。

 

Figure 6 檢視灰度版本狀態

4.    配置灰度策略

金絲雀釋出支援兩種策略:“基於流量比例釋出”和“基於請求內容釋出”。“基於流量比例釋出”,使用者可以為兩個版本更改例項數和流量配比,可根據需求將灰度版本的流量配比逐步增大並進行“策略下發”

“基於請求內容釋出”目前支援基於Cookie內容,自定義Header,作業系統和瀏覽器的規則約束,只有滿足規則約束的訪問流量才可訪問到灰度版本

策略下發後,多次訪問Bookinfo應用,可以看到灰度版本與預設版本的訪問介面交替出現(如圖9和圖10)。

 

 

Figure 9 Bookinfo預設版本訪問介面

 

Figure 10 Bookinfo灰度版本訪問介面

5.    監測灰度執行狀態

點選進入“監測灰度執行狀態”,通過檢視原版本和灰度版本的實時流量監控(請求每秒訪問次數、請求時延)和健康監控狀態(POD狀態、CPU使用率和實體記憶體使用率)來確定灰度策略的執行情況(如圖11)。

 

Figure 11 監測灰度執行狀態

如果使用者認為灰度版本可以上線使用,可以在灰度版本卡片內點選“接管所有流量”按鈕。使用者確保灰度版本可以穩定執行並決定替換原版本,則點選原版本卡片的“版本下線”按鈕,結束灰度釋出,完成版本升級(如圖12)。此後如果再次訪問Bookinfo應用,則只會訪問到灰度版本(如圖10)。

 

Figure 12 在歷史記錄中檢視已完成的釋出任務

華為Istio服務的灰度釋出功能,使您的灰度釋出過程更加輕鬆易行。這個一站式的釋出平臺,通過內建的灰度釋出流程引導使用者非常方便地完成一個灰度釋出的過程,使得原本繁瑣又略帶危險性的操作變得非常容易。更多內容,歡迎體驗華為雲Istio服務。

相關文章