#scalive 1 : getting started rtb-dsp with scala

31
DSPを始めよう! ScalaRTB-DSP service “Sphere” のご紹介 Hidenori MATSUKI (@mazgi) Scalive # 1 July 15, 2014

Upload: hidenori-matsuki

Post on 28-May-2015

1.080 views

Category:

Documents


5 download

DESCRIPTION

#Scalive 1 http://connpass.com/event/6903/ 発表資料です。

TRANSCRIPT

Page 1: #Scalive 1 : Getting started RTB-DSP with Scala

DSPを始めよう!~ Scala製RTB-DSP service “Sphere” のご紹介 ~

Hidenori MATSUKI (@mazgi) Scalive # 1 July 15, 2014

Page 2: #Scalive 1 : Getting started RTB-DSP with Scala

今日のアジェンダ• 自己紹介

• 会社紹介

• Scala製RTB-DSP service “Sphere”のご紹介

• "Sphere"を運用してみて

• これからの”Sphere”

• 最後に

Page 3: #Scalive 1 : Getting started RTB-DSP with Scala

Hidenori MATSUKI ( @mazgi ) Maverick inc.

Manager of “Sphere” department. !

アドテクはじめて半年経ちました

!http://mazgi.com

or

Who is mazgi?

Page 4: #Scalive 1 : Getting started RTB-DSP with Scala

はじめました

すから

Page 5: #Scalive 1 : Getting started RTB-DSP with Scala

What is Maverick inc.?

• マーベリック株式会社 • 西新宿にあるアドテクの会社です • 2013年11月創業!

• 2013年12月"Sphere”サービス開始!

• エンジニア十数名

Page 6: #Scalive 1 : Getting started RTB-DSP with Scala

Our Product & Service

今日ご紹介する Scala製RTB-DSP service “Sphere”

を開発・運営しています

Page 7: #Scalive 1 : Getting started RTB-DSP with Scala

Maverick inc.は ScalaMatsuriを おうえんしています!

Page 8: #Scalive 1 : Getting started RTB-DSP with Scala

• 当資料の内容は「サービスインあるある」な感じかもしれません。

• 当資料には真のScalaistから見てツッコミどころのある内容が含まれています、きっと。

• お手元の(Air)マサカリを投げる機会は最後にございますので、どなたさまも(Air)マサカリの素振りをしながらご清聴願います。

御注意

Page 9: #Scalive 1 : Getting started RTB-DSP with Scala

Scala製RTB-DSP service “Sphere”のご紹介

Page 10: #Scalive 1 : Getting started RTB-DSP with Scala

What’s RTB-DSP ?• RTB→Real Time Bidding

• Web広告が表示される瞬間に広告枠のオークションを行われ配信される広告が決まる仕組み

• DSP→Demand Side Platform

• 広告主に代わりSSPから広告枠を買い付けるプラットフォーム

• SSP→Supply Side Platform

• 広告媒体者に代わりDSPに広告枠を販売するプラットフォーム

Page 11: #Scalive 1 : Getting started RTB-DSP with Scala

広告主

Audience

It's w

e!

DSP SSP Media

※画像は http://jp.yamaha.com/products/network/downloads/tools/ より

広告出稿

広告閲覧1. 広告リクエスト

2. bid request

3. 入札判断

4. bid response

5. 落札通知

6. 広告配信

a few secs

100 ms or die!

Page 12: #Scalive 1 : Getting started RTB-DSP with Scala

Sphereの特徴• Scala製!

• RTB部分→Scala, Play Framework2

• 集計・機械学習部分→Scala

• Web管理画面→Play Framework2

• 機械学習で賢く入札

• すべて物理サーバーで構成

• http://knowledge.sakura.ad.jp/case-study/1695/

Page 13: #Scalive 1 : Getting started RTB-DSP with Scala

“Sphere“"を運用してみて

Page 14: #Scalive 1 : Getting started RTB-DSP with Scala

“Sphere“"を運用してみて• 半年経ってようやく開発フロー固まってきた感じ

• GitHub.com使用

• 一応PullRequest駆動

• なんとなくgit-flow

• Redmine併用

• コミュニケーションはSkype使用

Page 15: #Scalive 1 : Getting started RTB-DSP with Scala

“Sphere“"を運用してみて• 半年経ったけどDeployフローまだまだ

• Ansibleでdeploy

• sbtとPlayのバージョン数種類併用→deploy時はsbtenv, playenvでビルド

• ミドルウェア依存部分のテストがまだまだ

• 本番安定性は確保できるようになった(

Page 16: #Scalive 1 : Getting started RTB-DSP with Scala

“Sphere“"を運用してみて

• Scala, sbt, Play Frameworkのバージョン対応

• playenv

• sbtenv

• sbt-extras

各自この辺りのツールを使ってます

Page 17: #Scalive 1 : Getting started RTB-DSP with Scala

エピソード

• ScalikeJDBCで爆速な話

• MySQL to MariaDBな話

• Hadoop(YARN)な話

Page 18: #Scalive 1 : Getting started RTB-DSP with Scala

ScalikeJDBCで爆速な話

Page 19: #Scalive 1 : Getting started RTB-DSP with Scala

ScalikeJDBCで爆速ある日のSkype

Page 21: #Scalive 1 : Getting started RTB-DSP with Scala

MySQL to MariaDBな話

Page 22: #Scalive 1 : Getting started RTB-DSP with Scala

MySQL to MariaDBOld DB New DB

Middleware MySQL 5.1.69 MariaDB 5.5.32

DB Engine InnoDB XtraDB

FileSystem Ext4 XFS

Kernel Version 2.6.32-358.23.2.el6.x86_64 3.12.13-gentoo

transactions/s!(4 threads)

653.25 822.39

r/w requests/s!(4 threads)

12411.72 15625.45

Page 23: #Scalive 1 : Getting started RTB-DSP with Scala

Hadoop(YARN)な話

Page 24: #Scalive 1 : Getting started RTB-DSP with Scala

Hadoop(YARN)なぜかHive Jobがメモリ使ってくれない・・・

!!!

しばらく(*'ω' *)ィャンと(*'ω' *)マモリーが社内流行語に・・・教訓:設定ファイルはちゃんと確認しましょう

Page 25: #Scalive 1 : Getting started RTB-DSP with Scala

これからの"Sphere"

Page 26: #Scalive 1 : Getting started RTB-DSP with Scala

ポイント

• もっとScalaを活かしたい

• アーキテクチャ刷新します!

• ログ収集と解析を強化します!

Page 27: #Scalive 1 : Getting started RTB-DSP with Scala

Real T

ime Bidding

Agg

rega

te &

Lea

rnin

g

InternetSSPs and Audiences

Architecture

Page 28: #Scalive 1 : Getting started RTB-DSP with Scala

Real T

ime Bidding

Agg

rega

te &

Lea

rnin

g

InternetSSPs and Audiences

Architecture

Page 29: #Scalive 1 : Getting started RTB-DSP with Scala

最後に

Page 30: #Scalive 1 : Getting started RTB-DSP with Scala

マサカリの投げ方

• @mazgiにマサカリを投げる

• 次回 #Scalive で壇上からマサカリを投げる

• Maverick inc.に入社して思う存分マサカリを投げる

!!