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

Microservices Engine:SchedulerX ジョブのカナリアリリース

最終更新日:Mar 12, 2026

SchedulerX でジョブロジックを更新する際、すべてのワーカーに直接デプロイすると、本番ワークロードに影響を与えるリスクがあります。SchedulerX はラベルベースのカナリアリリースをサポートしており、完全なロールアウトの前に、ジョブをワーカーのサブセットにルーティングして検証を行います。

仕組み

SchedulerX ワーカーは、ハートビートを通じてサーバーにラベルをレポートします。各ジョブは、静的構成またはランタイムを通じて、特定のラベルを持つワーカーをターゲットにできます。このラベルベースのルーティングが、カナリアリリースの背後にあるメカニズムです。

ワークフローは次のとおりです。

  1. ワーカーにラベルを割り当てます。たとえば、カナリア用には gray、本番用には prod です。

  2. テストのために、gray ラベルのワーカーにジョブをルーティングします。

  3. 結果を検証します。

  4. 検証が成功した後、変更を prod ラベルのワーカーに昇格させます。

アプローチの選択

アプローチ使用するタイミングロールバック
専用カナリアジョブ継続的なカナリアテスト -- 本番と並行して永続的なカナリアジョブを実行する必要がある場合カナリアジョブを削除します。本番ジョブは変更されずに継続します。
ワンタイムカナリア実行迅速なリリース前検証 -- ジョブを重複させることなく、カナリアワーカーで単一の実行をテストする場合ロールバックは不要です。本番スケジュールは影響を受けません。

ワーカーへのラベル割り当て

ラベルベースのルーティングを使用する前に、ワーカーにラベルが必要です。SchedulerX は 2 つのメソッドをサポートしています。

アプリケーション起動時のラベル設定

[Properties] 設定を通じてラベルを指定します。次の例では、Spring Boot アプリケーションを使用しています。

spring.schedulerx2.label=${label}

${label} を、prodgray などのターゲットラベル値に置き換えます。

EDAS または MSE トラフィックタグからのラベル継承

ご利用のアプリケーションが Enterprise Distributed Application Service (EDAS) または Microservices Engine (MSE) で実行されている場合、トラフィックラベリングによって SchedulerX ワーカーにラベルが自動的に適用されます。コード変更は不要です。ワーカーは、EDAS または MSE で構成されたトラフィックタグからラベルを継承します。

このメソッドは、MSE でエンドツーエンドカナリアリリースをすでに使用している場合に便利です。SchedulerX ワーカーが追加設定なしで同じラベルをピックアップするためです。

専用カナリアジョブの作成

本番ジョブをコピーして個別のカナリアジョブを作成し、トラフィックを分離するためにラベルを割り当てます。

  1. 本番ジョブに prod ラベルを追加します。

  2. 本番ジョブをコピーしてカナリアジョブを作成します。

  3. カナリアジョブに gray ラベルを追加します。

  4. gray ラベルのワーカーで検証するためにカナリアジョブを実行します。

Dedicated canary job workflow

検証が成功した後、検証済みの変更で本番ジョブを更新し、カナリアジョブを削除します。

検証が失敗した場合、カナリアジョブを削除します。本番ジョブは、prod ラベルのワーカーで中断なしに実行を継続します。

ワンタイムカナリアテストの実行

ジョブを重複させることなく、カナリアワーカーで単一の実行を検証するには、SchedulerX コンソールで特定のラベルを持つ既存のジョブを手動でトリガーします。

  1. SchedulerX コンソールで、ジョブを見つけます。

  2. [指定ラベルを 1 回実行] を選択し、gray ラベルを選択します。

  3. ジョブは gray ラベルのワーカーで一度実行されます。通常の生産スケジュールは、prod ラベルのワーカーで変更されずに継続します。

One-time canary run

CI/CD を使用したワンタイム実行の自動化

Jenkins などの継続的インテグレーションツールを使用して、ワンタイムカナリア実行を自動的にトリガーします。これにより、カナリア検証がデプロイメントパイプラインに統合され、各リリースが昇格前にカナリアワーカーで検証されます。

Automated canary run with CI/CD