如需升級部署在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:根據應用實際的參數、參數值擷取運算式設定。
按比例灰階:設定流量比例,流量會按配置的比例被轉寄到當前的灰階分組。
灰階發布啟動後,先在指定的灰階分組中部署新版本應用。您可在變更記錄頁面查看部署進度和狀態。
監控灰階流量是否符合預期。相關內容,請參見監控灰階流量。
灰階流量驗證完成後,在變更記錄頁面單擊開始下一批,完成後續分批發布。
如果在驗證過程中,發現新版本應用有問題,可以在變更記錄頁面右上方單擊終止變更。終止變更後,基本資料頁面提示應用處於金絲雀發布狀態,並且該變更已經被終止。請首先復原應用,然後再進行其他動作。
結果驗證
灰階發布後,在基本資料頁面查看部署套件是否為新部署的應用版本。在執行個體部署資訊頁面查看應用執行個體的運行狀態是否為運行正常。