AdStirの裏側 ngigroup 落合
今日のお題弊社で開発したスマートフォンSSP Adstir
自己紹介● @sochiai とか www.sochiai.com●● 2011/10よりNgigroup所属。AdStir担当技術。● perlとかjavascriptとかを書いてます。perl再入門中。●● その前はミッドタウンのYのつく会...
AdStirって?http://ad-stir.com/
使ってる技術 ● perl、catalyst、starman …管理画面等はcatalyst、api系で一部starman ● nginx…高速性が必要とされる配信サーバ ● MySQL…データ管理 ● memcached…配信サーバのキャッシ...
ロゴ トカゲじゃないです。  カメレオンです。「いろいろな広告に変わる」
システム構成
広告系のシステムで大事なこと
信頼性フルタイムで動作するシステムかつお金に関わることなので。       ちょっとやそっとでは落ちない安定性。
冗長性急な負荷でもすぐに増やせるようなシステム。
そして高速性なんといっても大事。
高速性の追求            nginx + memcached  言わずと知れた近頃流行のの高速サーバの組み合わせ● nginx moduleをC言語で自作することで、メモリアクセスだけで  広告は威信は動作するシステム。高速。● HD...
キャッシュのフロー1. バッチで広告情報をrdbからmemcachedにセット2. request時にmemcached(local)になければremoteからセット   (リードスルー)3. 広告情報をレスポンス
nginxのパフォーマンス● キャッシュレスのリアルタイム処理で1サーバで過去最高  300req/secでもload aveは常に0.5以下(他システムの実績では  3000req/sec以上もいける) ● Apache消費メモリApache...
nginx module● 資料が本家にないが、C言語の知識があれば割と簡単に作れ  る。          nginx-modules-guide
nginx reverce proxy● nginxのreverce proxy機能。簡単に使える。● squid<varnish=nginxぐらいの速度らしいが、高負荷時の動作  ではnginxの動作が優位らしい。メモリキャッシュ機能もあり、...
ソース管理はgit● 基本的にgit。githubを使っていたがリポジトリが増えてきたので、  gitoriousで自社用gitリポジトリを構築。● gitoriousはわりと構築が面倒(主にrailsアプリ特有の問題で)。  今なら構築の容易...
大型高機能➡小型高速● MSと同じ。● 小さいことはいいことです。
まとめ● パフォーマンス、信頼性の両立。nginx、memcachedという構成が  とても大事。C言語は難しいように見えて、技術的にも枯れてい  るので妥当な選択。リソース管理が難しいが、逆にリソースを完  全にコントロールできるのでフルタイ...
ご清聴ありがとうございましたp.s. 広告エンジニアやってるけど何か聞きたいことある?
Upcoming SlideShare
Loading in …5
×

Ad stirの裏側

2,550 views
2,455 views

Published on

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

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,550
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
8
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Ad stirの裏側

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

×