灰度發(fā)布應(yīng)用
本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業(yè)務(wù)造成影響,請務(wù)必仔細閱讀。
如果您的應(yīng)用有多個應(yīng)用實例且需要升級,那么您可以按需通過灰度或分批發(fā)布方式升級應(yīng)用實例版本。本文介紹什么是灰度發(fā)布,以及如何為應(yīng)用配置灰度發(fā)布與回滾功能。
前提條件
應(yīng)用實例數(shù)大于1。
背景信息
灰度發(fā)布又名金絲雀發(fā)布,在原有部署版本可用的情況下,同時部署新版本應(yīng)用作為金絲雀,測試新版本的性能,在保證整體系統(tǒng)穩(wěn)定的情況下,幫助您盡早發(fā)現(xiàn)問題和修復問題。
應(yīng)用進行灰度發(fā)布時,為了保證應(yīng)用穩(wěn)定性,您可以自定義實例數(shù),但是灰度發(fā)布的實例數(shù)不能超過應(yīng)用實例總數(shù)的50%,剩余的應(yīng)用實例按照指定的批次分批發(fā)布。第一批應(yīng)用實例發(fā)布后,您可以手動控制來選擇是否繼續(xù)下一批。同時,您可以利用這段時間間隙,收集業(yè)務(wù)側(cè)的反饋并決定是否繼續(xù)發(fā)布。
灰度發(fā)布有以下兩種類型。
按照流量比例灰度:例如,配置20%流量進入新版本,80%流量進入老版本。
按照請求內(nèi)容灰度:例如,請求中帶著特定用戶ID的流量進入新版本,其他流量進入老版本。
與分批發(fā)布相比,灰度發(fā)布控制流量粒度更細。關(guān)于分批發(fā)布的更多信息,請參見分批發(fā)布應(yīng)用。
場景示例
某應(yīng)用包含10個應(yīng)用實例,每個應(yīng)用實例的部署版本為Ver.1版本,現(xiàn)需將每個應(yīng)用實例升級為Ver.2版本。假設(shè)選擇2臺應(yīng)用實例進行灰度發(fā)布,剩下8臺應(yīng)用實例分3批進行分批發(fā)布,灰度發(fā)布流程如下圖所示。
操作步驟
重新部署應(yīng)用后,該應(yīng)用將會被重啟。為避免業(yè)務(wù)中斷等不可預知的錯誤,請在業(yè)務(wù)低峰期執(zhí)行部署操作。
登錄SAE控制臺,在左側(cè)導航欄選擇 ,然后選擇目標地域和目標命名空間,最后單擊目標應(yīng)用名稱。
在目標應(yīng)用的基礎(chǔ)信息頁面,單擊部署應(yīng)用。
配置部署參數(shù)。
說明部署方式由應(yīng)用首次部署方式?jīng)Q定,請根據(jù)所需的部署方式設(shè)置參數(shù)。
WAR包部署:重新上傳WAR包或者輸入新部署WAR包的地址,并完成相關(guān)環(huán)境和參數(shù)設(shè)置。
JAR包部署:重新上傳JAR包或者輸入新部署JAR包的地址,并完成相關(guān)環(huán)境和參數(shù)設(shè)置。
ZIP包部署:重新上傳ZIP包或者輸入新部署ZIP包的地址,并完成相關(guān)環(huán)境和參數(shù)設(shè)置。
鏡像:在配置鏡像區(qū)域,單擊修改鏡像,在修改鏡像面板,重新選擇鏡像倉庫或鏡像版本。
在發(fā)布策略設(shè)置區(qū)域,配置灰度發(fā)布。
配置項
說明
發(fā)布策略
選擇金絲雀發(fā)布(灰度)。
灰度數(shù)量
設(shè)置首先需要進行灰度發(fā)布的應(yīng)用實例數(shù)量。
灰度后剩余批次
灰度發(fā)布后,剩余的應(yīng)用實例按照設(shè)定的批次完成發(fā)布。
最小存活實例數(shù)
每次滾動升級最小存活的實例數(shù)。
按個數(shù):輸入最小存活實例數(shù)。您也可以選中使用系統(tǒng)推薦值,即取現(xiàn)有實例數(shù)的25%。
按比例:輸入百分比。
說明每次滾動部署最小存活的實例數(shù)建議≥1,保證業(yè)務(wù)不中斷。如果設(shè)置為0,應(yīng)用在升級過程中將會中斷業(yè)務(wù)。
以百分比計算時需向上取整。例如設(shè)置為25%,如果當前為5個實例,則最小存活實例數(shù)為2。
啟用七層流量灰度規(guī)則(K8s ingress)
創(chuàng)建規(guī)則類型為七層流量灰度(K8s Ingress)的灰度規(guī)則后,此功能才會生效。
啟用微服務(wù)灰度規(guī)則(僅Spring Cloud和Dubbo框架的應(yīng)用能使用)
創(chuàng)建規(guī)則類型為微服務(wù)流量灰度的灰度規(guī)則后,此功能才會生效。
配置完成后,單擊確定。
通過以下方式驗證配置是否生效。
方式一:在應(yīng)用的變更記錄頁面,查看應(yīng)用變更詳情與發(fā)布狀態(tài)。如果所有批次都執(zhí)行成功,則說明應(yīng)用更新成功。
方式二:在應(yīng)用基礎(chǔ)信息頁面的實例列表頁簽,查看實例的運行狀態(tài)。如果執(zhí)行狀態(tài)顯示為Running,表示應(yīng)用部署成功。
應(yīng)用回滾
采用灰度發(fā)布或者分批發(fā)布方式升級應(yīng)用實例時,如果應(yīng)用實例中存在未完成升級的實例,則當前應(yīng)用升級狀態(tài)處于進行中。
在實時跟蹤應(yīng)用升級時,如果首批應(yīng)用實例升級突發(fā)異常停止響應(yīng),為了保證業(yè)務(wù)不受影響,請在變更詳情頁面中單擊立即回滾,將已升級的實例回退至升級前版本,并將配置還原為升級前原有配置。
在應(yīng)用變更過程中,如果出現(xiàn)部署包不可用、健康檢查失敗等變更流程異常情況,將導致應(yīng)用升級失敗,SAE將停止當前應(yīng)用并進行回退。
在SAE上進行應(yīng)用升級耗時約為30分鐘,超出該時間后SAE將上報超時異常并暫停變更流程,請在變更詳情頁面,手動終止發(fā)布流程并回滾應(yīng)用。
更多信息
SAE部署應(yīng)用完成后,您可以對應(yīng)用進行如下操作。
操作 | 相關(guān)文檔 |
更新、擴縮容、啟停、刪除應(yīng)用等生命周期管理的操作 | |
自動彈性伸縮、CLB綁定和批量啟停等提升應(yīng)用性能的操作 | |
日志管理、監(jiān)控管理、應(yīng)用事件查看和變更記錄查看等聚焦應(yīng)用運行狀態(tài)的操作 |