本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。
如果您的應用有多個應用實例且需要升級,那么您可以按需通過灰度或分批發布方式升級應用實例版本。本文介紹什么是灰度發布,以及如何為應用配置灰度發布與回滾功能。
前提條件
應用實例數大于1。背景信息
灰度發布又名金絲雀發布,在原有部署版本可用的情況下,同時部署新版本應用作為金絲雀,測試新版本的性能,在保證整體系統穩定的情況下,幫助您盡早發現問題和修復問題。
應用進行灰度發布時,為了保證應用穩定性,您可以自定義實例數,但是灰度發布的實例數不能超過應用實例總數的50%,剩余的應用實例按照指定的批次分批發布。第一批應用實例發布后,您可以手動控制來選擇是否繼續下一批。同時,您可以利用這段時間間隙,收集業務側的反饋并決定是否繼續發布。
- 按照流量比例灰度:例如,配置20%流量進入新版本,80%流量進入老版本。
- 按照請求內容灰度:例如,請求中帶著特定用戶ID的流量進入新版本,其他流量進入老版本。
與分批發布相比,灰度發布控制流量粒度更細。關于分批發布的更多信息,請參見分批發布應用。
場景示例
操作步驟
重新部署應用后,該應用將會被重啟。為避免業務中斷等不可預知的錯誤,請在業務低峰期執行部署操作。
登錄SAE控制臺。
在左側導航欄,選擇 ,在頂部菜單欄選擇地域,然后單擊具體應用名稱。
在基本信息頁面右上角,單擊部署應用。
配置部署參數。
說明部署方式由應用首次部署方式決定,請根據所需的部署方式設置參數。
WAR包部署:重新上傳WAR包或者輸入新部署WAR包的地址,并完成相關環境和參數設置。
JAR包部署:重新上傳JAR包或者輸入新部署JAR包的地址,并完成相關環境和參數設置。
ZIP包部署:重新上傳ZIP包或者輸入新部署ZIP包的地址,并完成相關環境和參數設置。
鏡像:在配置鏡像區域,單擊修改鏡像,在修改鏡像面板,重新選擇鏡像倉庫或鏡像版本。
- 在發布策略設置區域,配置灰度發布。
配置項 說明 發布策略 選擇灰度發布。 灰度數量 設置首先需要進行灰度發布的應用實例數量。 灰度后剩余批次 灰度發布后,剩余的應用實例按照設定的批次完成發布。 分批間處理方式 當剩余批次大于1時需要配置。選擇自動或手動。 分批間隔時間 當分批間處理方式選擇自動時需要配置。單位為分鐘,取值范圍為[0,30]。 批次內部署間隔 每一批內,如果應用實例數大于1,應用實例間的部署時間間隔。單位為秒。 最小存活實例數 每次滾動升級最小存活的實例數。
按個數:輸入最小存活實例數。您也可以選中使用系統推薦值,即取現有實例數的25%。
按比例:輸入百分比。
說明每次滾動部署最小存活的實例數建議≥1,保證業務不中斷。如果設置為0,應用在升級過程中將會中斷業務。
以百分比計算時需向上取整。例如設置為25%,如果當前為5個實例,則最小存活實例數為2。
啟用微服務灰度規則 您為Spring Cloud或Dubbo應用創建的灰度規則。具體操作,請參見管理灰度規則(Java)。 - 可選:按需設置以下高級選項。
高級設置
參考文檔
鏡像加速
說明只有應用部署方式為鏡像時才能設置鏡像加速。
啟動命令設置
Java Tomcat設置
說明只有應用部署方式為WAR包部署時才能設置Tomcat。
環境變量設置
服務注冊發現
Hosts綁定設置
應用健康檢查設置
應用出/入公網訪問設置
應用生命周期管理設置
日志收集服務
持久化存儲
配置管理
微服務無損上下線
說明當您選擇WAR包部署或JAR包部署時,如果應用運行環境選擇EDAS-Container-XXX,不支持配置微服務無損上下線。
高級設置
參考文檔
鏡像加速
說明只有應用部署方式為鏡像時才能設置鏡像加速。
PHP應用監控設置
鏡像方式部署:設置PHP應用監控。
ZIP包方式部署:無。掛載目錄文本框置灰,您無法更改ARMS監控目錄,但可以選擇是否打開免費開通應用監控基礎版功能開關。
php.ini配置文件修改
啟動命令設置
環境變量設置
服務注冊發現
Hosts綁定設置
應用健康檢查設置
應用出/入公網訪問設置
應用生命周期管理設置
日志收集服務
持久化存儲
配置管理
高級設置
參考文檔
鏡像加速
說明只有應用部署方式為鏡像時才能設置鏡像加速。
啟動命令設置
環境變量設置
應用監控
服務注冊發現
Hosts綁定設置
應用健康檢查設置
應用生命周期管理設置
應用出/入公網訪問設置
日志收集服務
持久化存儲
配置管理
高級設置
參考文檔
鏡像加速
啟動命令設置
環境變量設置
應用監控
服務注冊發現
Hosts綁定設置
應用健康檢查設置
應用生命周期管理設置
應用出/入公網訪問設置
日志收集服務
持久化存儲
配置管理
- 配置完成后,單擊確認。
- 通過以下方式驗證配置是否生效。
- 方式一:在應用的變更記錄頁面,查看應用變更詳情與發布狀態。如果所有批次都執行成功,則說明應用更新成功。
- 方式二:在應用基本信息頁面的實例部署信息頁簽,查看實例的運行狀態。如果執行狀態顯示為Running,且實例的版本已變為Ver.2,表示應用部署成功。
應用回滾
采用灰度發布或者分批發布方式升級應用實例時,如果應用實例中存在未完成升級的實例,則當前應用升級狀態處于進行中。
在實時跟蹤應用升級時,如果首批應用實例升級突發異常停止響應,為了保證業務不受影響,請在變更詳情頁面中單擊立即回滾,將已升級的實例回退至升級前版本,并將配置還原為升級前原有配置。
在應用變更過程中,如果出現部署包不可用、健康檢查失敗等變更流程異常情況,將導致應用升級失敗,SAE將停止當前應用并進行回退。
在SAE上進行應用升級耗時約為30分鐘,超出該時間后SAE將上報超時異常并暫停變更流程,請在變更詳情頁面,手動終止發布流程并回滾應用。