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