🔖
機械学習における3つのデプロイパターン
シャドーモードデプロイ(Shadow Mode Deployment)
→新しいシステムを既存のシステムと並行して動作させるが、実際の業務には影響を与えない方法
カナリアデプロイ(Canary Deployment)
→新しいシステムを一部のユーザーに対してのみ導入し、問題がないか確認してから全体に展開する方法
ブルーグリーンデプロイ(Blue-Green Deployment)
→2つの独立した環境を用意し、新旧のシステムを切り替えることで安全にデプロイを行う方法
実際の使用例
ウェブサービスを運営する企業が、新しい機械学習モデルを導入する例を用いて説明していきます。
シャドーモードデプロイ
新しいレコメンデーションモデルを開発したが、まだ本番環境での性能が未知数。そこで、このモデルをシャドウモードで既存システムと並行して動作させます。
- どう動くか: ユーザーからのリクエストは、既存のモデルと新しいモデルの両方に送られます。ただし、ユーザーに実際に表示されるのは既存のモデルの結果だけ。
- メリット: 新しいモデルのパフォーマンスや問題点をリアルな環境で安全に評価できる。
カナリアデプロイ
新しい検索アルゴリズムを導入する際、全ユーザーに一斉に適用するのはリスクがあります。そこで、まずは全トラフィックの5%のユーザーにだけ新アルゴリズムを適用します。
- どう動くか: 特定のユーザーグループに対して新しいシステムを適用し、エラーやパフォーマンスを監視します。
- メリット: 問題が小規模なうちに発見でき、影響範囲を最小限に抑えられます。
ブルーグリーンデプロイ
大規模なシステムアップデートを行う場合、ダウンタイムを避けつつ安全に移行したいです。そこで、ブルー環境(現在の本番環境)とグリーン環境(新しいバージョンの環境)を用意します。
- どう動くか: 新しいバージョンはグリーン環境で稼働させ、最終確認が終わったらトラフィックをブルーからグリーンに切り替えます。
- メリット: 万が一問題が発生しても、即座に元のブルー環境に戻せるため、サービスの安定性を保てます。
まとめ
シャドーモードデプロイ
→新しいシステムを影で動かし、安全に性能評価を行う方法
カナリアデプロイ
→新しいシステムを一部ユーザーにのみ適用し、問題がないか段階的に確認する方法
ブルーグリーンデプロイ
→2つの環境を使い分け、安全かつ迅速にシステムを切り替える方法
Discussion