O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
アドテクを支える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の...
Próximos SlideShares
Carregando em…5
×

2014 11-20 adtechxscala-meetup

3.991 visualizações

Publicada em

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

Publicada em: Engenharia
  • Seja o primeiro a comentar

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/

×