【しゃどうでぷろい】

シャドウデプロイ とは?

💡 影武者が本番トラフィックでリハーサルする、最も安全なテスト手法
📌 このページのポイント
シャドウデプロイの仕組み ユーザー リクエスト LB トラフィック ミラーリング v1(本番) レスポンスを返す v2(シャドウ) 結果は破棄 レスポンス 比較 結果照合 性能測定 ユーザーへの影響ゼロで本番トラフィックテスト v2の処理結果はv1と比較するだけで、ユーザーには返さない
シャドウデプロイのイメージ
ひよこ ひよこ

カナリアリリースとは何が違うの?

ペンギン先生 ペンギン先生

カナリアリリースは一部のユーザーに実際に新バージョンのレスポンスを返すけど、シャドウデプロイはユーザーには一切影響を与えないんだ。トラフィックのコピーを新バージョンに流すだけで、レスポンスは捨てるんだよ

ひよこ ひよこ

レスポンスを捨てるなら、何を確認するの?

ペンギン先生 ペンギン先生

処理が正しく完了するか、エラーが出ないか、レスポンスタイムはどうか、旧バージョンと結果が一致するかを比較するんだよ。特にMLモデルの入れ替えでは、新モデルの推論結果を本番データで検証するのに最適なんだ

ひよこ ひよこ

本番と同じデータが使えるのはすごく便利だね!

ペンギン先生 ペンギン先生

そうなんだ。ステージング環境テストデータでは見つからないバグが、本番のリアルなトラフィックパターンで発見されることがあるからね。ただし、新バージョンがデータベースに書き込む場合は副作用に注意が必要だよ

ひよこ ひよこ

書き込みがあるとまずいの?

ペンギン先生 ペンギン先生

二重書き込みが起きちゃうからね。読み取り専用のAPIや推論サービスならシャドウデプロイは簡単だけど、書き込みがある場合はモックやダミーDBに向ける工夫が必要なんだ。あとインフラが実質2倍必要になるから、コストとのバランスも考えないとね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「シャドウデプロイ」って出てきたら「本番トラフィックで影テストする手法」と思えればだいたいOK!
📖 おまけ:英語の意味
「Shadow Deployment」 = 影のデプロイ
💬 Shadow(影)のように本番の裏側で同じ処理を行うことからこの名前がついたんだよ
← 用語集にもどる