Help us understand the problem. What is going on with this article?

Shadow Proxyのご紹介 at Quipper

More than 3 years have passed since last update.

この記事はQuipperのテックブログに書いた以下の記事の日本語版での要約です。
http://quipper.github.io/2015/11/11/introducing-shadow-proxy.html

Shadow Proxyとは?

本番のHTTPリクエストから同等のリクエストをステージング環境に適用するための仕組みです。主な目的は、2年以上の運用で肥大化したMongoDBに対するindexの追加/削除/つけ忘れなどを事前に検証・検知するためです。

構成

Fluentdが大活躍しています。

Reverse Proxy

Log AggregatorにNginxのアクセスログを転送する

Log Aggregator

S3(バックアップ),BigQuery(調査用),Shadow Proxyにアクセスログを転送する

Shadow Proxy

アクセスログをもとにステージングのアプリにHTTPリクエストを送信する。
こちらの記事を参考にfluent-plugin-http_shadowを利用しているのですが、オリジナルをForkしてQuipper独自仕様をいくつか追加してます。

  • Request Bodyを送信可能に
    • POSTリクエスト時に使うため
  • リクエスト送り先ごとに送信レートを設定可能に
    • 一部のステージングアプリが本番のアクセス数だと捌き切れない、かつコンテンツ作成アプリのリクエストは100%通したいため
  • その他の修正はこちらを参照

実際運用してみて

ぶっつけ本番で適用するのが怖かったindexの追加/削除が出来るようになり大活躍しています!

kamatama_41
Javaの会社 -> Railsの会社 -> JavaとかRailsとかの会社
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした