SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
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. 広告エンジニアやってるけど何か聞きたいことある?

Más contenido relacionado

La actualidad más candente

Fuel php勉強会東京vol3 発表資料_スパムフィルタパッケージ
Fuel php勉強会東京vol3 発表資料_スパムフィルタパッケージFuel php勉強会東京vol3 発表資料_スパムフィルタパッケージ
Fuel php勉強会東京vol3 発表資料_スパムフィルタパッケージ
web2citizen
 
後期第二回ネットワークチーム講座資料
後期第二回ネットワークチーム講座資料後期第二回ネットワークチーム講座資料
後期第二回ネットワークチーム講座資料
densan_teacher
 
エコなWebサーバー
エコなWebサーバーエコなWebサーバー
エコなWebサーバー
emasaka
 
JAWS-UG和歌山第0回キックオフミーティング LT
JAWS-UG和歌山第0回キックオフミーティング LTJAWS-UG和歌山第0回キックオフミーティング LT
JAWS-UG和歌山第0回キックオフミーティング LT
三七男 山本
 
GruntでJavaScript 前作業の自動化!
GruntでJavaScript 前作業の自動化!GruntでJavaScript 前作業の自動化!
GruntでJavaScript 前作業の自動化!
leverages_event
 
ネットワークコマンド入力に対応したツール事例
ネットワークコマンド入力に対応したツール事例ネットワークコマンド入力に対応したツール事例
ネットワークコマンド入力に対応したツール事例
fumoto kazuhiro
 
Word camptokyo2012セッション資料
Word camptokyo2012セッション資料Word camptokyo2012セッション資料
Word camptokyo2012セッション資料
horike37
 
やすい・はやい・うまいMTのホスティング環境を求めて - jaws-ug-3to-2013-sprint
やすい・はやい・うまいMTのホスティング環境を求めて - jaws-ug-3to-2013-sprintやすい・はやい・うまいMTのホスティング環境を求めて - jaws-ug-3to-2013-sprint
やすい・はやい・うまいMTのホスティング環境を求めて - jaws-ug-3to-2013-sprint
taiju higashi
 

La actualidad más candente (20)

LambdaでHello, World(2017/07/21 サーバレスアーキテクチャ勉強会)
LambdaでHello, World(2017/07/21 サーバレスアーキテクチャ勉強会)LambdaでHello, World(2017/07/21 サーバレスアーキテクチャ勉強会)
LambdaでHello, World(2017/07/21 サーバレスアーキテクチャ勉強会)
 
JS開発環境を晒す。
JS開発環境を晒す。JS開発環境を晒す。
JS開発環境を晒す。
 
Fuel php勉強会東京vol3 発表資料_スパムフィルタパッケージ
Fuel php勉強会東京vol3 発表資料_スパムフィルタパッケージFuel php勉強会東京vol3 発表資料_スパムフィルタパッケージ
Fuel php勉強会東京vol3 発表資料_スパムフィルタパッケージ
 
後期第二回ネットワークチーム講座資料
後期第二回ネットワークチーム講座資料後期第二回ネットワークチーム講座資料
後期第二回ネットワークチーム講座資料
 
新人営業のためのよくわかる仮想化技術r
新人営業のためのよくわかる仮想化技術r新人営業のためのよくわかる仮想化技術r
新人営業のためのよくわかる仮想化技術r
 
約束なんていらないPromiseよりもasync/awaitだ!
約束なんていらないPromiseよりもasync/awaitだ!約束なんていらないPromiseよりもasync/awaitだ!
約束なんていらないPromiseよりもasync/awaitだ!
 
エコなWebサーバー
エコなWebサーバーエコなWebサーバー
エコなWebサーバー
 
2008-07-12 / WCAN 2008 Summer Ligntning Talks #2
2008-07-12 / WCAN 2008 Summer Ligntning Talks #22008-07-12 / WCAN 2008 Summer Ligntning Talks #2
2008-07-12 / WCAN 2008 Summer Ligntning Talks #2
 
2012 09-29.yapcasia2012ltthon
2012 09-29.yapcasia2012ltthon2012 09-29.yapcasia2012ltthon
2012 09-29.yapcasia2012ltthon
 
JAWS-UG和歌山第0回キックオフミーティング LT
JAWS-UG和歌山第0回キックオフミーティング LTJAWS-UG和歌山第0回キックオフミーティング LT
JAWS-UG和歌山第0回キックオフミーティング LT
 
GruntでJavaScript 前作業の自動化!
GruntでJavaScript 前作業の自動化!GruntでJavaScript 前作業の自動化!
GruntでJavaScript 前作業の自動化!
 
Mask Material only in Early Z-passの効果と仕組み
Mask Material only in Early Z-passの効果と仕組みMask Material only in Early Z-passの効果と仕組み
Mask Material only in Early Z-passの効果と仕組み
 
ネットワークコマンド入力に対応したツール事例
ネットワークコマンド入力に対応したツール事例ネットワークコマンド入力に対応したツール事例
ネットワークコマンド入力に対応したツール事例
 
Mbed2013
Mbed2013Mbed2013
Mbed2013
 
Word camptokyo2012セッション資料
Word camptokyo2012セッション資料Word camptokyo2012セッション資料
Word camptokyo2012セッション資料
 
やすい・はやい・うまいMTのホスティング環境を求めて - jaws-ug-3to-2013-sprint
やすい・はやい・うまいMTのホスティング環境を求めて - jaws-ug-3to-2013-sprintやすい・はやい・うまいMTのホスティング環境を求めて - jaws-ug-3to-2013-sprint
やすい・はやい・うまいMTのホスティング環境を求めて - jaws-ug-3to-2013-sprint
 
第二回 クラウドサーバー管理者若葉の会
第二回 クラウドサーバー管理者若葉の会第二回 クラウドサーバー管理者若葉の会
第二回 クラウドサーバー管理者若葉の会
 
Ruby東京プレゼン 資料
Ruby東京プレゼン 資料Ruby東京プレゼン 資料
Ruby東京プレゼン 資料
 
Web技術勉強会 第33回
Web技術勉強会 第33回Web技術勉強会 第33回
Web技術勉強会 第33回
 
Node.js×mongo dbで3年間サービス運用してみた話
Node.js×mongo dbで3年間サービス運用してみた話Node.js×mongo dbで3年間サービス運用してみた話
Node.js×mongo dbで3年間サービス運用してみた話
 

Similar a Ad stirの裏側

Next-L Enju 開発ワークショップ #10
Next-L Enju 開発ワークショップ #10Next-L Enju 開発ワークショップ #10
Next-L Enju 開発ワークショップ #10
Kosuke Tanabe
 
hbstudy#6LTyuzorock
hbstudy#6LTyuzorockhbstudy#6LTyuzorock
hbstudy#6LTyuzorock
yuzorock
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
Akihiro Kuwano
 

Similar a Ad stirの裏側 (20)

ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せます
 
Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会
 
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介
 
sysloadや監視などの話(仮)
sysloadや監視などの話(仮)sysloadや監視などの話(仮)
sysloadや監視などの話(仮)
 
Next-L Enju 開発ワークショップ #10
Next-L Enju 開発ワークショップ #10Next-L Enju 開発ワークショップ #10
Next-L Enju 開発ワークショップ #10
 
hbstudy#6LTyuzorock
hbstudy#6LTyuzorockhbstudy#6LTyuzorock
hbstudy#6LTyuzorock
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
 
ICD/CPSY 201412
ICD/CPSY 201412ICD/CPSY 201412
ICD/CPSY 201412
 
Webサーバのチューニング
WebサーバのチューニングWebサーバのチューニング
Webサーバのチューニング
 
DeNAインフラの今とこれから - 今編 -
DeNAインフラの今とこれから - 今編 -DeNAインフラの今とこれから - 今編 -
DeNAインフラの今とこれから - 今編 -
 
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
 
Shiva 〜Nextremerをscale upする機械学習環境〜
Shiva 〜Nextremerをscale upする機械学習環境〜Shiva 〜Nextremerをscale upする機械学習環境〜
Shiva 〜Nextremerをscale upする機械学習環境〜
 
PHP-Ninjaの裏側
PHP-Ninjaの裏側PHP-Ninjaの裏側
PHP-Ninjaの裏側
 
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
 
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
 
mod_auth_ticket - Bringing Single-Sign-On to lighttpd
mod_auth_ticket - Bringing Single-Sign-On to lighttpdmod_auth_ticket - Bringing Single-Sign-On to lighttpd
mod_auth_ticket - Bringing Single-Sign-On to lighttpd
 
runC概要と使い方
runC概要と使い方runC概要と使い方
runC概要と使い方
 
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニングアドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
 
Paa s and oss
Paa s and ossPaa s and oss
Paa s and oss
 
Fargate起動歴1日の男が語る運用の勘どころ
Fargate起動歴1日の男が語る運用の勘どころFargate起動歴1日の男が語る運用の勘どころ
Fargate起動歴1日の男が語る運用の勘どころ
 

Último

Último (11)

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

Ad stirの裏側