您好,登錄后才能下訂單哦!
作者 | 白寂 阿里云開發工程師
導讀:前三篇文章我們介紹了應用的開發和部署,那么在應用成功上云后,我就要面對應用的管理話題了,這一篇我們來看看如何做線上發布,并且是可灰度的。
相關文章推薦:
在新版本上線時,無論是從產品穩定性還是用戶對新版本的接受程度上考慮,直接將老應用升級到新版本應用都有很大風險的。我們一般的做法是,保證新老版本同時在線,并且先將少部分流量切換到新版本應用上,同時在此期間對新版本的應用請求進行觀察。在確認新版本沒有問題后,再逐步將更大比例的流量切換到新版本上。這個過程的核心是可以對流量的流入轉發規則進行配置,EDAS 的金絲雀發布能力,提供了多個版本同時在線的能力,并且提供了靈活的配置規則來給不同的版本進行流量分配。
部署在 EDAS Kubernetes 集群中的 Spring Cloud 微服務應用,在新版本發布的時候可以使用金絲雀發布進行小規模驗證,驗證通過后再全量升級。
首先,進入 EDAS 的應用部署頁面,對我們要進行部署升級的應用進行發布,在這里我們選擇金絲雀(灰度)發布。需要注意的是,對灰度發布的流量控制,當前只對非入口應用的 Dubbo 和 Spring Cloud 應用生效。所謂入口應用,即承接外部流量的第一個應用節點。并且若您的應用使用了 HPA、Rancher、Istio、或者依賴Deployment.Metadata.Name 或 Deployment.Metadata.Uid 的功能與配置等 K8s 原生功能或配置時,請勿使用灰度發布或分批發布。否則,應用部署之后,這些 K8s 原生功能或配置將出現異常。
在發布頁面,可以選擇通過上傳 JAR 包或者填入 JAR 包地址的方式選擇要進行發布的新版本應用部署包。
在選擇好要進行發布的新版本應用部署包后,接下來進行發布策略的配置。這里分為兩個部分:
在批次發布這里我們可以進行的配置有:
在下面的例子中,我們現在有 7 個 pod 應用實例,選擇首批對 2 個實例進行灰度升級。在首批 2 個實例的灰度發布完成后,將剩下的 5 個實例分 3 個批次進行發布。這3個批次的批次間處理方式選擇自動發布,在當前批次發布完成 30 分鐘后自動進行下一批次的發布。同時,由于第 2 批次和第 2 批次內實例個數為兩臺,因此選擇批次內兩臺實例部署間隔為 60 秒。在發布頁面右側可以對我們的發布策略配置信息進行預覽。
目前支持 按內容灰度和 按比例灰度兩種方式設置灰度規則。按請求內容進行灰度支持將請求內容符合指定灰度規則條件的流量作為灰度流量,進入到灰度實例中,例如,選擇用戶 ID 模 100 小于等于 40 的流量作為灰度流量進入灰度實例進行處理,而用戶 ID 模 100 大于 40 的仍然進入非灰度實例進行處理,如圖 1 所示。而按流量比例進行灰度是指,將指定比例的請求流量作為灰度流量進入灰度實例進行處理,例如指定 40% 的流量作為灰度流量,如圖 2 所示。
(圖1)
(圖2)
按請求內容進行灰度可以進行下面指定參數的配置,來決定有哪些請求內容特征的流量將作為灰度流量進入灰度實例中。
按比例灰度即設置 流量比例,然后請求流量會按配置的比例被轉發到當前的灰度分組中進行處理。
配置好發布配置后,即可開始進行灰度發布,EDAS 將先在指定的灰度分組中部署新版本應用,可在進入 變更詳情頁面查看部署進度和狀態。如果在灰度發布時,發現新版本有問題,還可以終止變更并對應用進行回滾。
在灰度的發布過程中,可對應用進行監控,以監控灰度流量是否符合預期,同時可以對應用狀態進行新老版本的對比。在當前批次的灰度流量驗證完成后,在變更詳情頁面單擊開始下一批,完成后續分批發布。如果在驗證過程中,發現新版本應用有問題,可以在變更詳情頁面右上角單擊立即回滾。在彈出的立即回滾對話框確認回滾的影響,然后單擊回滾。
關于如何監控灰度流量,可以參考 EDAS文檔《監控灰度流量》。
灰度發布后,在基本信息頁面查看部署包是否為新部署的應用版本。在實例部署信息頁面查看應用實例的運行狀態是否為運行正常。
本章我們介紹了如何對 EDAS Kubernetes 集群上的 Spring Cloud 應用進行灰度發布,在灰度發布過程中,我們可以靈活地配置發布策略、灰度規則以及在發布過程中對流量及應用狀態進行監控,并且提供了終止回滾等操作,最大程度地保證應用能夠平滑地進行版本升級。接下來的文章中,我們將詳細介紹在發布過程中如何對應用進行監控。
“ 阿里巴巴云原生關注微服務、Serverless、容器、Service Mesh 等技術領域、聚焦云原生流行技術趨勢、云原生大規模的落地實踐,做最懂云原生開發者的公眾號。”
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。