全部產品
Search
文件中心

Platform For AI:為EAS服務配置更新計劃

更新時間:May 23, 2026

在 EAS 服務副本規模達到數十甚至上百個時,傳統的全量變換策略因缺乏分批控制和暫停機制,顯著增加了發布風險。為此,我們引入了更新計劃功能,支援手動分批與自動分批兩種模式。該功能讓您能夠精準掌控大規模服務的發布節奏,並在發現異常時快速復原,確保業務平穩過渡。

功能特性

  • 多元化更新模式:支援手動分批與自動分批兩種模式。

    特性

    手動分批(Partition)

    自動分批(Batch Update)

    控制方式

    完全手動,使用者逐步推進

    配置後系統自動執行

    營運成本

    較高

    較低

    靈活度

    最高

    中等

    適用情境

    核心線上服務灰階發布

    大規模服務常規更新

  • 全流程可幹預:更新過程中可隨時暫停、復原、調整分批策略,或刪除計劃退回預設全量策略。

  • 狀態即時可見:服務詳情網頁標題欄提供“更新計劃”狀態標籤,懸浮框即時展示進度、批次倒計時等關鍵資訊。

快速開始

以下樣本展示從建立更新計划到完成一次服務更新的完整流程(以手動分批為例,服務共 10 個副本)。

前置條件:開啟更新計劃功能

重要

更新計劃僅支援建立服務時開啟,暫不支援通過更新服務開啟。

建立服務時,需在 JSON 配置的 features 欄位中添加 "eas.aliyun.com/enable-rollout": "true",否則無法開啟更新計劃。樣本:

{
  "metadata": {
    "instance": 10
  },
  "features": {
    "eas.aliyun.com/enable-rollout": "true"
  }
}

步驟 1:建立更新計劃

  1. 單擊目標服務進入 EAS 服務詳情頁

  2. 在標題列找到更新計劃標籤(預設灰色,表示未配置)

  3. 滑鼠懸浮標籤,在彈出的懸浮框中單擊建立更新計劃

  4. 在右側抽屜面板中選擇手動分批,設定首批更新副本數為 2

  5. 單擊確定

更新計劃建立成功,標籤變為藍色,狀態顯示待生效

步驟 2:觸發更新

單擊服務詳情頁的更新,提交新的服務配置。

系統開始按計劃推進:先更新 2 個副本,完成後停下等待。懸浮框顯示當前進度(2/10)。

步驟 3:驗證,推進下一批

觀察業務指標(延遲、錯誤率等),確認無異常後:修改計劃,將目標副本數調整為 10。系統繼續更新剩餘 8 個副本,直到全部完成。

說明

有異常,修改更新計劃,將目標副本數調整為 0,已更新的副本將全部復原到舊版本。

狀態說明

更新計劃採用兩層狀態模型:第一層為階段(phase),第二層為批次狀態(stage,僅在生效中時存在)。

  • 未配置(灰色):未建立更新計劃,更新服務時預設全量替換

  • 待生效(藍色):計劃已建立,等待更新服務觸發

  • 生效中(藍色):已觸發,正在按策略分批替換副本。生效中階段包含三種批次狀態(stage):

    • 當前批次執行中:正在更新,已更新數向目標數靠攏

    • 當前批次暫停中:使用者暫停了執行,進度凍結

    • 當前批次已完成:當前批次目標已達成,等待使用者推進(手動分批)或倒計時結束自動推進(自動分批)

  • 已完成(藍色):本輪更新計劃已完成。

    • 如果更新服務會重新觸發更新計劃,狀態變為生效中

    • 如果修改更新計劃,狀態將變為待生效,等待下次更新服務。

各狀態下支援的操作如下表所示:

操作

未配置

待生效

生效中

已完成

當前批次執行中

當前批次暫停中

當前批次已完成

建立計劃

修改計劃

刪除計劃

暫停

恢複

更新服務

注意事項

  • 修改生效中的更新計劃:新參數立即生效;若當前處於暫停中,修改後自動取消暫停

  • 修改已完成的更新計劃:僅儲存配置,不會自動觸發更新,需再次更新服務

  • 刪除生效中的更新計劃:剩餘副本按全量策略繼續更新,不會復原

  • 擴縮容時有更新計劃:更新計劃參數不變,執行時按實際副本數生效

  • 手動分批首批數設為 0:合法值,等同於更新服務後立即暫停在起點,等待使用者手動推進

  • 自動分批每批數量 ≥ 總副本數:等同於一批全量更新,效果接近預設全量替換

JSON 配置

通過 JSON 配置更新計劃時,在服務的 metadata.rolling_strategy 欄位中設定以下參數。

完整配置結構

{
  "metadata": {
    "rolling_strategy": {
      "max_surge": "25%",
      "max_unavailable": "20%",
      "partition": 5,
      "paused": false,
      "batch_update": {
        "interval": "5m",
        "batch_size": 2
      }
    }
  }
}

欄位說明

欄位

類型

說明

預設值

max_surge

數字或百分比

更新過程中允許額外建立的副本數

0

max_unavailable

數字或百分比

更新過程中允許停用最大副本數

20%

partition

數字或百分比

手動模式:需要更新的副本數量

paused

布爾值

是否暫停更新,對兩種模式均有效

false

batch_update.interval

時間字串(如 5m

自動模式:批次間隔(上一批次完成到下一批次開始之間的等待時間)

batch_update.batch_size

數字或百分比

自動模式:每批次更新的副本數量

等於 max_unavailable

配置樣本

手動分批:灰階發布

{
  "metadata": {
    "instance": 10,
    "rolling_strategy": {
      "partition": 2,
      "max_unavailable": 1
    }
  }
}

說明:共 10 個執行個體,先更新 2 個,其餘保持舊版本。

自動分批:大規模服務

{
  "metadata": {
    "instance": 100,
    "rolling_strategy": {
      "batch_update": {
        "interval": "10m",
        "batch_size": 5
      }
    }
  }
}

說明:共 100 個副本,每 10 分鐘自動更新 5 個副本。

緊急暫停

{
  "metadata": {
    "rolling_strategy": {
      "paused": true
    }
  }
}

快速復原

{
  "metadata": {
    "rolling_strategy": {
      "partition": 0
    }
  }
}

說明:將 partition 設為 0,已更新的副本會逐步復原。對手動分批和自動分批模式均有效。

常見問題

Q:如何快速復原?

更新計劃執行過程中(如更新版本V2->V3)發現問題,建議如下操作,復原速度更快:

  1. 修改更新計劃為手動分批且目標副本數為0,已更新的副本會逐步復原到舊版本(V2)。

  2. 更新服務配置(版本V4)。

  3. 修改更新計劃。

更新全部完成後(所有副本均為新版本V3),無法通過更新計劃復原,請在服務版本列表中指定版本進行復原。

Q:手動分批和自動分批參數能同時設定嗎?

不能。partition(手動分批參數)優先順序更高,設定後系統會忽略自動分批參數。

Q:如何在更新過程中暫停?

設定 paused: true 即可暫停,對手動分批和自動分批兩種模式均有效。也可通過控制台在更新計劃懸浮框中單擊暫停

Q:配置自動分批時,不設定每批數量會怎樣?

系統會自動使用 max_unavailable 的值作為批次大小。

Q:配置自動分批時,不設定批次間隔會怎樣?

批次大小仍然生效,但不會自動推進下一批(相當於手動分批,需手動推進)。