🔖

機械学習における3つのデプロイパターン

2024/11/18に公開

シャドーモードデプロイ(Shadow Mode Deployment)

→新しいシステムを既存のシステムと並行して動作させるが、実際の業務には影響を与えない方法

カナリアデプロイ(Canary Deployment)

→新しいシステムを一部のユーザーに対してのみ導入し、問題がないか確認してから全体に展開する方法

ブルーグリーンデプロイ(Blue-Green Deployment)

→2つの独立した環境を用意し、新旧のシステムを切り替えることで安全にデプロイを行う方法

実際の使用例

ウェブサービスを運営する企業が、新しい機械学習モデルを導入する例を用いて説明していきます。

シャドーモードデプロイ

新しいレコメンデーションモデルを開発したが、まだ本番環境での性能が未知数。そこで、このモデルをシャドウモードで既存システムと並行して動作させます。

  • どう動くか: ユーザーからのリクエストは、既存のモデルと新しいモデルの両方に送られます。ただし、ユーザーに実際に表示されるのは既存のモデルの結果だけ。
  • メリット: 新しいモデルのパフォーマンスや問題点をリアルな環境で安全に評価できる。

カナリアデプロイ

新しい検索アルゴリズムを導入する際、全ユーザーに一斉に適用するのはリスクがあります。そこで、まずは全トラフィックの5%のユーザーにだけ新アルゴリズムを適用します。

  • どう動くか: 特定のユーザーグループに対して新しいシステムを適用し、エラーやパフォーマンスを監視します。
  • メリット: 問題が小規模なうちに発見でき、影響範囲を最小限に抑えられます。

ブルーグリーンデプロイ

大規模なシステムアップデートを行う場合、ダウンタイムを避けつつ安全に移行したいです。そこで、ブルー環境(現在の本番環境)とグリーン環境(新しいバージョンの環境)を用意します。

  • どう動くか: 新しいバージョンはグリーン環境で稼働させ、最終確認が終わったらトラフィックをブルーからグリーンに切り替えます。
  • メリット: 万が一問題が発生しても、即座に元のブルー環境に戻せるため、サービスの安定性を保てます。

まとめ

シャドーモードデプロイ

→新しいシステムをで動かし、安全に性能評価を行う方法

カナリアデプロイ

→新しいシステムを一部ユーザーにのみ適用し、問題がないか段階的に確認する方法

ブルーグリーンデプロイ

2つの環境を使い分け、安全かつ迅速にシステムを切り替える方法

Discussion