Ad stirの裏側
Upcoming SlideShare
Loading in...5
×
 

Ad stirの裏側

on

  • 2,207 views

ngigroup enigmo合同LTで発表したngigroupで開発したSSP「AdStir」の紹介です。

ngigroup enigmo合同LTで発表したngigroupで開発したSSP「AdStir」の紹介です。

Statistics

Views

Total Views
2,207
Views on SlideShare
2,197
Embed Views
10

Actions

Likes
3
Downloads
5
Comments
0

4 Embeds 10

http://s.deeeki.com 6
http://twitter.com 2
http://us-w1.rockmelt.com 1
http://slideshare-download.seesaa.net 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Ad stirの裏側 Ad stirの裏側 Presentation Transcript

  • AdStirの裏側 ngigroup 落合
  • 今日のお題弊社で開発したスマートフォンSSP Adstir
  • 自己紹介● @sochiai とか www.sochiai.com●● 2011/10よりNgigroup所属。AdStir担当技術。● perlとかjavascriptとかを書いてます。perl再入門中。●● その前はミッドタウンのYのつく会社で、自動車とか地図とロコと かのサービスをphpでがりがり。●● その前はフラクタリストという携帯サイトメインのベンチャーで、 phpとかrubyとかperlとか。●● その前は富○通系傘下の開発会社でCとかJavaとかで高速通 信アプリとか、組み込み系をがりがり。
  • AdStirって?http://ad-stir.com/
  • 使ってる技術 ● perl、catalyst、starman …管理画面等はcatalyst、api系で一部starman ● nginx…高速性が必要とされる配信サーバ ● MySQL…データ管理 ● memcached…配信サーバのキャッシュ ● javascript…管理画面だけでなくweb広告の取得・表示に。 ● android用SDK ● iOS用SDK
  • ロゴ トカゲじゃないです。 カメレオンです。「いろいろな広告に変わる」
  • システム構成
  • 広告系のシステムで大事なこと
  • 信頼性フルタイムで動作するシステムかつお金に関わることなので。 ちょっとやそっとでは落ちない安定性。
  • 冗長性急な負荷でもすぐに増やせるようなシステム。
  • そして高速性なんといっても大事。
  • 高速性の追求 nginx + memcached 言わずと知れた近頃流行のの高速サーバの組み合わせ● nginx moduleをC言語で自作することで、メモリアクセスだけで 広告は威信は動作するシステム。高速。● HDDのファイルシステムが壊れた状態でも広告配信は行われ ていた。(配信ログが残らなかったためそれはそれで問題だった …)
  • キャッシュのフロー1. バッチで広告情報をrdbからmemcachedにセット2. request時にmemcached(local)になければremoteからセット (リードスルー)3. 広告情報をレスポンス
  • nginxのパフォーマンス● キャッシュレスのリアルタイム処理で1サーバで過去最高 300req/secでもload aveは常に0.5以下(他システムの実績では 3000req/sec以上もいける) ● Apache消費メモリApache 数十KB~/プロセスリクエストの数だ けプロセス発生(preforkの場合)● nginx数KB~/プロセス1ワーカーあたり複数リクエストを捌ける (一 般的にCPU orCPUコア数=ワーカー数)
  • nginx module● 資料が本家にないが、C言語の知識があれば割と簡単に作れ る。 nginx-modules-guide
  • nginx reverce proxy● nginxのreverce proxy機能。簡単に使える。● squid<varnish=nginxぐらいの速度らしいが、高負荷時の動作 ではnginxの動作が優位らしい。メモリキャッシュ機能もあり、単 純なreverce proxyであればなにも考えずにnginxでOKでは。
  • ソース管理はgit● 基本的にgit。githubを使っていたがリポジトリが増えてきたので、 gitoriousで自社用gitリポジトリを構築。● gitoriousはわりと構築が面倒(主にrailsアプリ特有の問題で)。 今なら構築の容易さ高機能でgitoliteという選択かも。
  • 大型高機能➡小型高速● MSと同じ。● 小さいことはいいことです。
  • まとめ● パフォーマンス、信頼性の両立。nginx、memcachedという構成が とても大事。C言語は難しいように見えて、技術的にも枯れてい るので妥当な選択。リソース管理が難しいが、逆にリソースを完 全にコントロールできるのでフルタイム動作するシステムではい い方向に働く。 ● いつアクセスが爆発するか分からない(いきなり大きなメディア が入ってくることも!)ので、常にパフォーマンスを気にした設計 が要求される。元Cプログラマーとしては血が騒ぐし、webサービ スの根幹ともいえる部分。● nginx押し押しですいません。集計周りとかは全然話せませんで したね。。。
  • ご清聴ありがとうございましたp.s. 広告エンジニアやってるけど何か聞きたいことある?