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服務。