35
32

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Shadow Proxyのご紹介 at Quipper

Last updated at Posted at 2015-11-10

この記事は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の追加/削除が出来るようになり大活躍しています!

35
32
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
35
32

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?