すべてのプロダクト
Search
ドキュメントセンター

Platform For AI:EASサービスのアップデートプランの設定

最終更新日:May 23, 2026

PAI-EAS サービスが数十または数百のレプリカにスケールする場合、バッチ制御や一時停止のメカニズムがない一括置換は、重大なデプロイメントリスクを伴います。アップデートプラン機能は、この問題に対応するため、手動バッチ (Partition) と自動バッチ (Batch Update) の 2 つのアップデートモードをサポートします。これにより、大規模デプロイメントのペースを制御し、問題発生時に迅速なロールバックが可能になります。

基本概念

  • 複数のアップデートモード手動バッチ (Partition)自動バッチ (Batch Update) の 2 つのモードがサポートされています。

    特徴

    手動バッチ (Partition)

    自動バッチ (Batch Update)

    制御

    完全手動。各バッチを手動で進めます

    設定後、システムが自動でバッチを進めます

    運用オーバーヘッド

    高い

    低い

    柔軟性

    最も高い

    中程度

    最適な用途

    重要なオンラインサービスのカナリアリリース

    大規模サービスの定期的なアップデート

  • アップデート中の完全な制御:アップデート中の任意の時点で、一時停止、ロールバック、またはバッチ戦略の変更が可能です。プランを削除すると、デフォルトの一括置換戦略に戻ります。

  • リアルタイムのステータス可視性:サービス詳細ページのヘッダーにある [Update plan] ステータスタグに現在のフェーズが表示されます。タグにカーソルを合わせると、リアルタイムの進捗、バッチのカウントダウン、その他の主要情報を含むツールチップが表示されます。

クイックスタート

以下の例では、10 個のレプリカを持つサービスで手動バッチを使用して、アップデートプランを作成し、サービスアップデートを完了するまでの手順を説明します。

前提条件:アップデートプラン機能の有効化

重要

アップデートプラン機能は、新しいサービスの作成時にのみ 有効にできます。既存のサービスを更新して有効にすることはできません。

サービスを作成する際、JSON 設定の features フィールドに "eas.aliyun.com/enable-rollout": "true" を追加します。この設定がない場合、アップデートプラン機能は利用できません。例:

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

ステップ 1:アップデートプランの作成

  1. 対象のサービスをクリックして、PAI-EAS サービスの詳細ページを開きます。

  2. ヘッダーバーにある [Update plan] タグを見つけます。デフォルトではグレーで表示され、プランが未構成であることを示します。

  3. タグにカーソルを合わせ、表示されるツールチップで [Create update plan] をクリックします。

  4. 右側からスライドインするパネルで、[Manual batching] を選択し、最初のバッチのレプリカ数を 2 に設定します。

  5. [OK] をクリックします。

アップデートプランが作成されます。タグが青色に変わり、ステータスが保留中になります。

ステップ 2:アップデートのトリガー

サービス詳細ページで Update をクリックし、新しいサービス設定を送信します。

システムはプランに従ってアップデートを開始します。まず 2 つのレプリカを更新し、その後一時停止して待機します。ツールチップには現在の進捗 (2/10) が表示されます。

ステップ 3:検証と次のバッチへの移行

ビジネスメトリクス (レイテンシー、エラー率など) を確認します。問題が見つからない場合は、プランを修正し、ターゲットレプリカ数を 10 に設定します。システムは、アップデートが完了するまで残りの 8 つのレプリカを更新します。

説明

問題が見つかった場合は、アップデートプランを修正し、ターゲットレプリカ数を 0 に設定します。更新されたすべてのレプリカが以前のバージョンにロールバックされます。

ステータスリファレンス

アップデートプランは 2 段階のステータスモデルを使用します。トップレベルはフェーズで、セカンドレベルはステージです (ステージはフェーズがアクティブな場合にのみ存在します)。

  • 未構成 (グレー):アップデートプランが存在しません。サービスを更新すると、一括置換がトリガーされます。

  • 保留中 (青):プランは作成されましたが、サービスアップデートによるアクティベーションを待機しています。

  • アクティブ (青):アップデートがトリガーされ、システムがバッチでレプリカを置換しています。アクティブには 3 つのステージがあります:

    • 現在のバッチを実行中:バッチは進行中です。更新された数はターゲットに近づいています。

    • 現在のバッチが一時停止中:ユーザーが実行を一時停止しました。進捗は停止しています。

    • 現在のバッチが完了:バッチのターゲットに到達しました。システムは、ユーザーが手動で進める (手動バッチ) か、カウントダウンが終了する (自動バッチ) のを待機します。

  • 完了 (青):現在のラウンドのアップデートが終了しました。

    • サービスを再度更新すると、プランが再トリガーされ、ステータスがアクティブに変わります。

    • プランを修正すると、ステータスが保留中に変わり、次のサービスアップデートを待機します。

次の表は、各ステータスで利用可能な操作を示しています:

操作

未構成

保留中

アクティブ

完了

現在のバッチを実行中

現在のバッチが一時停止中

現在のバッチが完了

プランの作成

プランの修正

プランの削除

一時停止

再開

サービスの更新

注意事項

  • アクティブなプランの修正:新しいパラメーターはすぐに有効になります。プランが現在一時停止中の場合、修正によって自動的に再開されます。

  • 完了したプランの修正:設定は保存されますが、自動的にアップデートをトリガーしません。新しいプランを適用するには、サービスを再度更新してください。

  • アクティブなプランの削除:残りのレプリカは、一括置換戦略を使用して更新を続行します。ロールバックは発生しません。

  • アップデートプランが存在する場合のスケーリング:プランのパラメーターは変更されず、実行時の実際のレプリカ数に基づいて適用されます。

  • 手動バッチで最初のバッチ数を 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)

自動バッチ:1つのバッチの完了から次のバッチの開始までの待機時間

batch_update.batch_size

数値またはパーセンテージ

自動バッチ:バッチごとに更新するレプリカの数

max_unavailable と同じ値

設定例

手動バッチ:カナリアリリース

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

合計 10 個のレプリカ。最初の 2 つが更新され、残りの 8 つはプランを進めるまで古いバージョンのままです。

自動バッチ:大規模サービス

{
  "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 パラメーター (手動バッチ) が優先されます。partition が設定されている場合、システムはすべての自動バッチパラメーターを無視します。

Q:進行中のアップデートを一時停止するにはどうすればよいですか?

paused: true に設定します。これは手動バッチと自動バッチの両方で機能します。または、コンソールの [Update plan] ツールチップで [Pause] をクリックします。

Q:自動バッチでバッチサイズを設定しない場合はどうなりますか?

システムは max_unavailable の値をバッチサイズとして使用します。

Q:自動バッチでバッチ間隔を設定しない場合はどうなりますか?

バッチサイズは適用されますが、システムは自動的に次のバッチに進みません。これは手動バッチと同等であり、各バッチを手動で進める必要があります。