by shigemk2

当面は技術的なことしか書かない

DSPを始めよう #Scalive

@mazgi

SphereのManager

Scalaと鉞

Maverick.,inc. マーベリック株式会社

Sphereを始めて半年

  • Maverick inc.はScala Matsuriを応援しています

  • サービスインあるある

  • 鉞を投げる機会はいっぱいあるよ

ScalaのRTB-DSP Sphere

  • Real Time Bitting Web広告が表示された瞬間に広告枠のオークションが行われ配信される広告が決まる仕組み
  • DSP 広告主に代わりSSPから広告枠を買い付けるプラットフォーム
  • SSP 広告媒体者に代わりDSPに広告を販売するプラットフォーム

広告の流れは数秒、入札から入札判断までは100ms

  • RTB部分はScala Play2
  • 集計、機械学習部分はScala
  • Web管理画面はPlay2
  • 機械学習導入
  • すべて物理サーバ(レイテンシにこだわるから)

運用してみて

  • フローは固まってきた
  • GitHub.com
  • PR駆動
  • git-flowとredmime、そしてSkype
  • Ansibleでdeploy
  • sbtとPlayのバージョンを数種類併用
  • sbtenv playenvでビルド
  • ミドルウェア依存部分のテストがまだまだ
  • 本番はだいぶ安定
  • playenv sbtenv sbt-extrasでバージョン対応(バージョンが混じっていても問題ない)

エピソード

  • ScalikeJDBCで爆速
  • MySQL to MariaDB
  • Hadoop(YARN)な話

ScalikeJDBCで爆速

Webのコンパイルが爆速になったのか コンパイルが5分とかザラ、場合によってはもっとかかるかも

MySQL to MariaDB

Welcome to MariaDB! - MariaDB

MySQL5.1.69 MariaDB5.5.32

ベンチマークで早くなったかどうか分からん

transactions/s 653→822

Hadoop(YARN)

Hive Jobがメモリを使ってくれない mamory(typo)

これからのShpere

  • もっとScalaを活かしたい(JVMとGCと仲良くなる)
  • アーキテクチャ刷新(もっと複雑になるかも)
  • ログ収集と解析を強化する(まだまだ改善の余地がある)

アーキテクチャ

nginx MariaDB Hadoop(入札ログデータなど) memcached(キャッシュが弱いので) fluentd(ログ収集)

最後に

鉞の投げ方

  • Twitter @mazgiに鉞を投げる
  • 次回のScaliveで壇上から鉞を投げる
  • 入社して鉞を投げる

ガーベジ・コレクション:GC ( Garbage Collection ) についての簡単な説明と調査方法