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.

2014 11-20 adtechxscala-meetup

3,830 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/

×