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