全部產品
Search
文件中心

Platform For AI:灰階發布

更新時間:Aug 22, 2025

服務群組主要用於管理承載業務流量的多個子服務,具有統一的流量入口。系統根據流量分配策略將入口流量分配給各個服務,適用於灰階發布、Auto Scaling和異構資源調度等多種業務情境。本文介紹如何建立服務群組、查看流量入口及修改流量分配策略。

應用情境

  • 灰階發布

    將生產服務和灰階服務加入同一分組,灰階服務分配較少的流量。發布新版本時,先更新灰階服務,觀察運行情況。若有問題,復原灰階服務或停止灰階服務並切換流量到生產服務;若正常,則全量更新生產服務,更新後縮容灰階服務至0或保留少量流量。

  • 預付費和後付費Auto Scaling

    在同一分組中,預付費服務部署在專屬資源群組,固定執行個體數支撐基本需求;後付費服務部署在公用資源群組,按需Auto Scaling,降低成本。

  • 使用異構硬體資源

    在GPU加速情境中,服務部署完成後,部分卡型在某些地區可能會出現停卡或庫存不足的問題,導致服務無法正常擴容。使用服務群組功能在同一服務群組中動態建立不同卡型的服務,適配不同CUDA環境,實現多服務使用異構資源支援同一業務情境。因服務群組的流量入口不變,故前端透明無感知。

建立服務群組

建立服務時,您可以指定服務歸屬於某個服務群組,通過這種方式建立服務群組,並將對應的服務歸納到該服務群組中。

說明

建立服務時,如果指定的服務群組名稱不存在,系統會自動建立該群組;如果存在,則新服務會加入該群組。刪除服務群組中最後一個服務時,服務群組會自動刪除。

下面以建立一個pmml服務群組,並將pmml_prodpmml_grey兩個服務歸屬到該服務群組為例,樣本如何建立服務群組。

控制台

  1. 登入PAI控制台,在頁面上方選擇目標地區,並在右側選擇目標工作空間,然後單擊進入EAS

  2. 灰階發布頁簽,單擊建立群組與服務

  3. 自訂部署頁面,配置參數,並單擊部署

    其中:

    • 服務名稱:參考介面提示資訊配置,樣本值為pmml_prod

    • 所屬群組:選擇建立群組,樣本值為pmml

    其他參數配置,詳情請參見自訂部署

參照步驟2~3,建立服務pmml_grey歸屬於服務群組pmml

服務建立成功後,您可以在灰階發頁簽單擊群組名稱pmml進入群組詳情頁面,查看歸屬於該群組的服務列表。

image

重要

後加入群組的服務預設不承載流量,請參考修改流量分配策略

EASCMD用戶端

  1. 準備服務的設定檔service.json,樣本如下。

    單擊查看pmml_prod服務的設定檔

    {
      "name":"pmml_prod",
      "model_path":"http://examplebucket.oss-cn-shanghai.aliyuncs.com/models/lr_xxxx.pmml",
      "processor":"pmml",
      "metadata":{
        "cpu":1,
        "instance":4,
        "group":"pmml"
      }
    }

    單擊查看pmml_grey服務的設定檔

    {
      "name":"pmml_grey",
      "model_path":"http://examplebucket.oss-cn-shanghai.aliyuncs.com/models/lr_xxxx.pmml",
      "processor":"pmml",
      "metadata":{
        "cpu":1,
        "instance":1,
        "group":"pmml"
      }
    }

    其中,group指定服務歸屬於哪個服務群組,即建立的服務群組的名稱。其他參數請參見JSON部署

  2. 建立服務及服務群組。

    登入eascmd用戶端後使用create命令建立服務及服務群組,詳情請參見下載並認證用戶端,使用樣本如下所示。

    $ eascmd create service.json
  3. 查看服務及群組詳情。

    您可以使用ls命令查看服務及群組詳情,使用樣本如下所示。

    $ eascmd ls

    系統輸出如下結果。

    [RequestId]: 716BEBFC-E8A4-51FD-A3F7-56376B167923
    +---------------------------+----------+-----+--------+----------------------+----------------------+---------+--------+--------------+---------------------------+
    |        SERVICENAME        | INSTANCE | CPU | MEMORY |      CREATETIME      |      UPDATETIME      | STATUS  | WEIGHT | TRAFFICSTATE |       SERVICEGROUP        |
    +---------------------------+----------+-----+--------+----------------------+----------------------+---------+--------+--------------+---------------------------+
    | pmml_prod                 |        4 |   1 | 1000M  | 2022-06-05T14:30:49Z | 2022-06-05T14:30:49Z | Running |     80 | grouping     | pmml                      |
    | pmml_grey                 |        1 |   1 | 1000M  | 2022-06-05T14:31:38Z | 2022-06-05T14:31:38Z | Running |     20 | grouping     | pmml                      |
    +---------------------------+----------+-----+--------+----------------------+----------------------+---------+--------+--------------+---------------------------+

    其中

    • SERVICEGROUP pmml,表示兩個服務均歸屬於pmml服務群組。

    • TRAFFICSTATEgrouping,表示兩個服務同時承載流量,且兩個服務的流量比例為80%和20%,與執行個體個數相匹配。

查看流量入口

服務群組擁有統一的流量入口,群組中各服務還擁有獨立的流量入口。

服務群組流量入口

<endpoint>/api/predict/<group_name>

使用樣本:

http://182848887922****.vpc.cn-shanghai.pai-eas.aliyuncs.com/api/predict/pmml

灰階發布頁簽,查看服務群組流量入口。該入口的流量會根據策略分配到不同服務。服務群組中的服務可以建立或刪除,但入口地址不變,可用於線上調試。

image

單個服務流量入口

<endpoint>/api/predict/<group_name>.<service_name>

使用樣本:

http://182848887922****.vpc.cn-shanghai.pai-eas.aliyuncs.com/api/predict/pmml.pmml_prod

推理服務頁簽,查看單個服務流量入口。該入口與具體服務的生命週期相關聯,流量始終會流入指定的服務。服務刪除後,入口會被銷毀。完成群組切流後,仍需使用該入口地址訪問服務並進行線上調試。

image

修改流量分配策略

EAS當前支援兩種流量分配方式:

  • 執行個體數分配:流量會根據各服務的推理執行個體數量動態分配。例如,服務A有1個執行個體,服務B有3個執行個體,則A分配25%流量,B分配75%的流量。關閉流量分配功能後,該服務不再參與群組流量分配,但可單獨訪問調用。

  • 自訂權重分配:流量會根據各服務的權重進行加權分配。例如,服務A的流量權重為100,服務B的流量權重為400,則A分配20%流量,B分配80%流量。

重要

無論哪種流量分配方式,服務關閉流量分配功能後,不再參與群組流量分配,但可單獨訪問調用。

具體修改方式如下:

說明

支援通過API調整服務流量權重和流量狀態,詳情請參見ReleaseService - 調整服務流量權重和流量狀態

按執行個體數分配

控制台

開啟流量分配列開關,表示該服務承接流量;關閉,表示該服務不承接流量。

image

EASCMD

使用release命令,命令格式如下所示。如何登入eascmd用戶端,請參見下載並認證用戶端

$ eascmd release <service_name> -s grouping|standalone

其中:

  • <service_name>:服務名稱,需要替換為待修改的服務名稱。

  • grouping|standalone:修改後的狀態,grouping表示承載流量,standalone表示不承載流量。

使用樣本如下所示:

  • 修改服務pmml_grey的狀態為standalone,即不承載流量,可執行如下命令。

    $ eascmd release pmml_grey -s standalone

    系統輸出結果如下。

    Confirmed to release service [pmml_grey] to group traffic [Y/n]yes
    [RequestId]: 40C787DF-8900-5F7A-8A01-30F7D5A8BF3B
    [OK] Service [pmml_grey] has entered the traffic state: standalone

    使用eascmd ls命令查看服務的運行狀態,系統輸出如下結果。

    [RequestId]: 83BE3FBB-8CE2-5008-B435-1938A20B13AA
    +---------------------------+----------+-----+--------+----------------------+----------------------+---------+--------+--------------+---------------------------+
    |        SERVICENAME        | INSTANCE | CPU | MEMORY |      CREATETIME      |      UPDATETIME      | STATUS  | WEIGHT | TRAFFICSTATE |       SERVICEGROUP        |
    +---------------------------+----------+-----+--------+----------------------+----------------------+---------+--------+--------------+---------------------------+
    | pmml_prod                 |        4 |   1 | 1000M  | 2022-06-05T14:30:49Z | 2022-06-05T14:30:49Z | Running |    100 | grouping     | pmml                      |
    | pmml_grey                 |        1 |   1 | 1000M  | 2022-06-05T14:42:41Z | 2022-06-05T14:42:41Z | Running |     0  | standalone   | pmml                      |
    +---------------------------+----------+-----+--------+----------------------+----------------------+---------+--------+--------------+---------------------------+

    其中服務pmml_greyTRAFFICSTATE已更新為standaloneWEIGHT為0,表示全部的流量由pmml_prod承載。

  • 修改服務pmml_grey的狀態為grouping,即服務承載流量,可執行如下命令。

    $ eascmd release pmml_grey -s grouping

    系統輸出結果如下。

    Confirmed to release service [pmml_grey] to group traffic [Y/n]yes
    [RequestId]: 40C787DF-8900-5F7A-8A01-30F7D5A8BF3B
    [OK] Service [pmml_grey] has entered the traffic state: grouping

    使用eascmd ls命令查看服務的運行狀態,系統輸出如下結果。

    [RequestId]: 83BE3FBB-8CE2-5008-B435-1938A20B13AA
    +---------------------------+----------+-----+--------+----------------------+----------------------+---------+--------+--------------+---------------------------+
    |        SERVICENAME        | INSTANCE | CPU | MEMORY |      CREATETIME      |      UPDATETIME      | STATUS  | WEIGHT | TRAFFICSTATE |       SERVICEGROUP        |
    +---------------------------+----------+-----+--------+----------------------+----------------------+---------+--------+--------------+---------------------------+
    | pmml_prod                 |        4 |   1 | 1000M  | 2022-06-05T14:30:49Z | 2022-06-05T14:30:49Z | Running |     80 | grouping     | pmml                      |
    | pmml_grey                 |        1 |   1 | 1000M  | 2022-06-05T14:42:41Z | 2022-06-05T14:42:41Z | Running |     20 | grouping     | pmml                      |
    +---------------------------+----------+-----+--------+----------------------+----------------------+---------+--------+--------------+---------------------------+

    其中服務pmml_greyTRAFFICSTATE已更新為grouping,並按執行個體比例承載了20%的流量。

自訂權重

在流量權重列直接編輯。

image