A Day in the Life

リクエストを複製し、2台のサーバ両方にリクエストを飛ばす

リクエストを複製し、2台のサーバ両方にリクエストを飛ばす

リクエストを複製し、2台のサーバ両方にリクエストを飛ばすし、片方のサーバのレスポンスを返却することで、2台のサーバどちらとも正常にリクエストを処理できるか、というテストに役立てることができる。

production (正常に動いている) サーバのレスポンスを返せば、ユーザは特に問題なくサービスを利用でき、もう一台のテストサーバ(write 等は全部無視orダミーに飛ばす)ではエラーチェック等行うことができる。どんなときに役に立つかというと、大規模なフレームワークやライブラリのバージョンを上げた時、テスト(テスティングフレームワークのテストのこと)だけだと発見できない問題を、実リクエストを発行することにより調べることができる。

具体的なやり方は、一個 proxy を建てて振り分ければ良い。Ruby なら em-proxy の以下の example コードにちょっと手を入れるだけで実現できるだろう。

意識の高いリーンエンジニアからやり方書いてよ!って言われたので書きました。