如需升級部署在ECS集群中的Spring Cloud或Dubbo微服務應用,為確保升級操作的安全性,可以使用金絲雀發布(即灰度發布)進行小規模驗證,驗證通過后再全量升級。本文介紹如何在EDAS控制臺灰度發布ECS集群中的應用。
前提條件
請確保應用中至少包含兩個實例分組,且至少兩個分組下包含實例,才能進行金絲雀發布。創建實例分組及為分組添加ECS實例的操作步驟,請參見使用控制臺管理ECS集群中的應用實例分組。
使用限制
HSF應用:不支持金絲雀發布。
Dubbo應用:無使用限制。
Spring Cloud應用:如果應用依賴Deployment.Metadata.Name或Deployment.Metadata.Uid的功能與配置,請勿使用金絲雀發布,否則該原生功能將出現異常。
入口類型應用:如果當前應用為入口類型應用,流量從SLB直接轉發到當前應用,那么SLB流量轉發策略不會遵循此金絲雀發布策略。
說明若您想體驗金絲雀灰度發布,可以使用示例Demo:先創建一個客戶端應用,再創建多副本的服務端應用,對服務端應用進行灰度發布,并為客戶端應用綁定SLB,通過SLB訪問服務。
操作步驟
登錄EDAS控制臺。
在左側導航欄,單擊 ,在頂部菜單欄選擇地域,并在頁面上方選擇微服務空間,然后在應用列表頁面單擊具體的應用名稱。
在基本信息頁面右上角,單擊部署應用,在部署模式選擇頁面金絲雀發布(灰度)區域右上角,單擊開始部署。
在灰度發布頁面完成相關配置后,單擊確定。
上傳新版本應用的部署包。
在發布策略區域配置發布策略參數。
在發布策略配置信息區域會根據配置顯示灰度發布流程。
配置項
描述
灰度分組
進行灰度發布的實例分組。
灰度后每組批次
灰度分組發布后,其他分組中的應用實例按照設定的批次完成分批發布。
當所選分組為所有分組時,會對應用下每一個分組都進行所選批次數的分批發布,若分組實例數小于所選批次數,則以實例數為準進行分批。
當所選分組為指定分組時,會對應用下指定分組進行所選批次數的分批發布。
灰度后分批方式
灰度后每組批次設置為2批或2批以上時需要設置,包括自動和手動兩種方式。
自動:根據分批時間間隔自動分批發布。自動分批方式還需要設置分批等待時間。
分批等待時間包含不等待和1~5分鐘。
手動:手動觸發下一個批次的發布。
Java環境
該應用的運行環境,根據實際需求選擇。
設置灰度規則。目前支持按內容灰度和按比例灰度兩種方式的灰度規則。
按內容灰度:單擊添加策略,在添加內容灰度策略面板,單擊+創建流量規則設置入口流量規則。
說明您可以創建多個入口流量規則。
配置項
描述
協議類型
包含Spring Cloud和Dubbo,按應用實際情況選擇。
Spring Cloud:需要設置path。
Dubbo:需要選擇服務和方法。
條件模式
包含同時滿足下列條件和滿足下列任一條件。
條件列表
Spring Cloud和Dubbo協議的條件有所不同。
Spring Cloud:包含Cookie、Header和Parameter 3種方式,根據實際需求設置。
Dubbo:根據應用實際的參數、參數值獲取表達式設置。
按比例灰度:設置流量比例,流量會按配置的比例被轉發到當前的灰度分組。
灰度發布啟動后,先在指定的灰度分組中部署新版本應用。您可在變更記錄頁面查看部署進度和狀態。
監控灰度流量是否符合預期。相關內容,請參見監控灰度流量。
灰度流量驗證完成后,在變更記錄頁面單擊開始下一批,完成后續分批發布。
如果在驗證過程中,發現新版本應用有問題,可以在變更記錄頁面右上角單擊終止變更。終止變更后,基本信息頁面提示應用處于金絲雀發布狀態,并且該變更已經被終止。請首先回滾應用,然后再進行其他操作。
結果驗證
灰度發布后,在基本信息頁面查看部署包是否為新部署的應用版本。在實例部署信息頁面查看應用實例的運行狀態是否為運行正常。