@mazgi
SphereのManager
Scalaと鉞
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
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で壇上から鉞を投げる
- 入社して鉞を投げる