ABテスト,カナリアリリース,ブルー・グリーンデプロイの違い

昨日、提案質疑で質問を受けたので整理してみます。

ABテスト

  • サイト・アプリを改善する際に、どっちのやり方がいいか両方本番にデプロイして調べる方法です
  • アクセスしたユーザーに対してランダムに表示する機能を切り替え、コンバージョン等の結果を測定します
    • 試したい複数の機能に加え、「ユーザーを振り分ける機能」、「振り分けたユーザーから結果を測定する機能」が必要になります
  • 改善案が間違っていた場合、一部の本番のユーザーが離脱するなどの悪影響にもなりかねます
    • 振り分けをしているので全ユーザーにはなりませんが、意識する必要があります
  • 参考

カナリアリリース

  • 新機能リリース等の際に一気にリリースするのではなく、一部ユーザーに振り分けて様子見しながら徐々に新機能に移行する方法です
  • ABテストとの違いは、別に機能を試して調査したいのではなく、リリースに関わるトラブルのリスク軽減が目的であることです
    • 負荷等の問題が発覚したらロールバックする。振り分けしているので全ユーザーには影響しないで済むこともある
    • 「ユーザーを振り分ける機能」が必要です

ブルー・グリーンデプロイ

  • リリースの際に、稼働中の本番と同じ構成のシステムを構築し、そちらにリリースします
  • リリースが完了した際に、本番の向き先をリリース済み環境に切り替えます
  • これは、リリースに関わるトラブルのリスク軽減が目的です
    • 停止時間
    • リリース作業の複雑さ等
    • 参考
  • 本番と同等規模の環境と、アクセス先切り替え機能(ロードバランサ等)が必要です
  • 特にデータベースをどう扱うかはかなり難しいと思います