Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
アドテクを支えるScala 
Ad Generationの場合 
2014-11-20 
アドテク×Scala meetup
自己紹介 
• 野村 欣弘(のむら よしひろ) 
• 株式会社mediba(株式会社ScaleOutに出向中) 
• scala歴:1年半ぐらい 
• ネット広告業界歴:2年半ぐらい 
• 主にAd Generationの開発を担当
アジェンダ 
• medibaでscalaを採用した理由 
• Ad Generationでどのようにscalaが使われて 
いるか? 
• sprayを使ったrtb-engineについて 
• sparkを使ったrtb-engine-logに...
scala採用した理由 
• githubを見るに、2011年ぐらい 
から使い始める 
• medibaadでは配信サーバでPlay、 
集計でspark
Ad Generationについて 
ScaleOut 
DSP 
Ad Generation 
ScaleOut Ad Platform 
ScaleOut 
DMP 
(SSP) 
• ScaleOut Ad Platform上に構築された...
どのようにscalaが使われるのか 
ScaleOut Ad Platform 
adserver 
RTBサーバ 
rtb-enigne DSP 
fluentd 
集計サーバ 
HDFS 
mesos 
rtb-enigne-log 
DS...
どのようにscalaが使われてるのか 
• rtb-engine 
• DSPからの入札をオークションするサー 
バです。 
• rtb-engine-log 
• アクセス数、DSP通信、オークション状 
況(入札、落札)の集計を行います。
rtb-engine 
• spray1.2.1 
• アドサーバと枠データ、オークション結果をやり取 
りする 
• DSPとの入札、応札をやり取りをする 
• DSPからのレスポンスをまって、オークションする 
• 集計画面(angular...
rtb-engine 
• 現状10台 
• 70億オークション/月 
• 250億bid リクエスト/月 
• 70億 x 3-4DSP 
• ピーク時 
対アドサーバ : 4,900qps、対DSP : 20,000qps
rtb-engine 
ピーク時にさばけない 
-> configの見直し 
-> コードの見直し
rtb-engine 
• configの見直し 
• akkaの設定とsprayの設定 
• 似たような設定項目が複数ある 
• APIレイヤーが細かい
rtb-engine 
• コードの見直し 
• ブロックする箇所をFutureを使う 
ように 
• 用途ごとにスレッドプールを割り当 
てた
rtb-engine-log 
• spark1.0.0 
• mesos上で動かしてる 
• 7種類のログを集計 
• 10分ごと、1時間ごと、1日ごとに集計 
• 入力はHDFS、出力はDB
rtb-engine-log
rtb-engine-log 
• 6cpu,20GB/台 x 4台 
• master:2台, slave:4台 
• 500M - 1.5G x 7 x 10 / hour 
• 12 - 40s/job
rtb-engine-log 
• 集計自体よりI/Oがネック(主にDB) 
• ほどよいサイズで 
• 手軽に試せるし、身構えず書ける 
• spark-shellが試しやすい 
• コレクションを操作するのと変わらず書 
ける
scalaを使ってみて 
• 並列処理、並行処理を扱いやすい 
• アドサーバやRTBサーバのようなものには向いてい 
る 
• 用途を選ばない言語 
• 何でもそつなくこなせる 
• 配信も集計も1つの言語で 
• やっぱりJava、JVM知...
今後 
• チューニング 
• この会で勉強しようと思います。 
• 売り上げ向上につながる、柔軟に速 
やかな分析 
• spark SQL、chronosとかを調査中
おわり 
ScaleOutでは各種エンジニアを募集中です。 
• 大規模配信を行いたい方 
• 大規模データの解析を行いたい方 
• 広告システム,ログ解析システムは絶対面白い!と思う方 
• Webアプリ開発大好きでデザパタ厨な方 
• Pの...
Upcoming SlideShare
Loading in …5
×

2014 11-20 adtechxscala-meetup

3,793 views

Published on

2014 11-20 に催された「アドテク×Scala meetup」で発表したスライドです。
http://connpass.com/event/8384/

Published in: Engineering
  • Be the first to comment

2014 11-20 adtechxscala-meetup

  1. 1. アドテクを支えるScala Ad Generationの場合 2014-11-20 アドテク×Scala meetup
  2. 2. 自己紹介 • 野村 欣弘(のむら よしひろ) • 株式会社mediba(株式会社ScaleOutに出向中) • scala歴:1年半ぐらい • ネット広告業界歴:2年半ぐらい • 主にAd Generationの開発を担当
  3. 3. アジェンダ • medibaでscalaを採用した理由 • Ad Generationでどのようにscalaが使われて いるか? • sprayを使ったrtb-engineについて • sparkを使ったrtb-engine-logについて • scalaをつかってみて
  4. 4. scala採用した理由 • githubを見るに、2011年ぐらい から使い始める • medibaadでは配信サーバでPlay、 集計でspark
  5. 5. Ad Generationについて ScaleOut DSP Ad Generation ScaleOut Ad Platform ScaleOut DMP (SSP) • ScaleOut Ad Platform上に構築されたSSP • スマートフォン(web/app)に注力 • 来月からScaleOutに譲渡されます • RTB関連の処理をscalaで実装
  6. 6. どのようにscalaが使われるのか ScaleOut Ad Platform adserver RTBサーバ rtb-enigne DSP fluentd 集計サーバ HDFS mesos rtb-enigne-log DSP DSP SDK 枠 データ
  7. 7. どのようにscalaが使われてるのか • rtb-engine • DSPからの入札をオークションするサー バです。 • rtb-engine-log • アクセス数、DSP通信、オークション状 況(入札、落札)の集計を行います。
  8. 8. rtb-engine • spray1.2.1 • アドサーバと枠データ、オークション結果をやり取 りする • DSPとの入札、応札をやり取りをする • DSPからのレスポンスをまって、オークションする • 集計画面(angularJS)用のAPIも
  9. 9. rtb-engine • 現状10台 • 70億オークション/月 • 250億bid リクエスト/月 • 70億 x 3-4DSP • ピーク時 対アドサーバ : 4,900qps、対DSP : 20,000qps
  10. 10. rtb-engine ピーク時にさばけない -> configの見直し -> コードの見直し
  11. 11. rtb-engine • configの見直し • akkaの設定とsprayの設定 • 似たような設定項目が複数ある • APIレイヤーが細かい
  12. 12. rtb-engine • コードの見直し • ブロックする箇所をFutureを使う ように • 用途ごとにスレッドプールを割り当 てた
  13. 13. rtb-engine-log • spark1.0.0 • mesos上で動かしてる • 7種類のログを集計 • 10分ごと、1時間ごと、1日ごとに集計 • 入力はHDFS、出力はDB
  14. 14. rtb-engine-log
  15. 15. rtb-engine-log • 6cpu,20GB/台 x 4台 • master:2台, slave:4台 • 500M - 1.5G x 7 x 10 / hour • 12 - 40s/job
  16. 16. rtb-engine-log • 集計自体よりI/Oがネック(主にDB) • ほどよいサイズで • 手軽に試せるし、身構えず書ける • spark-shellが試しやすい • コレクションを操作するのと変わらず書 ける
  17. 17. scalaを使ってみて • 並列処理、並行処理を扱いやすい • アドサーバやRTBサーバのようなものには向いてい る • 用途を選ばない言語 • 何でもそつなくこなせる • 配信も集計も1つの言語で • やっぱりJava、JVM知ってた方がいい
  18. 18. 今後 • チューニング • この会で勉強しようと思います。 • 売り上げ向上につながる、柔軟に速 やかな分析 • spark SQL、chronosとかを調査中
  19. 19. おわり ScaleOutでは各種エンジニアを募集中です。 • 大規模配信を行いたい方 • 大規模データの解析を行いたい方 • 広告システム,ログ解析システムは絶対面白い!と思う方 • Webアプリ開発大好きでデザパタ厨な方 • Pのつく言語に携わるのに少し疲れた方 • 弊社に興味を持たれた方 http://www.scaleout.jp/about/job-opportunities/

×