Submit Search
Upload
F.O.Xを支える技術
•
Download as PPTX, PDF
•
0 likes
•
3,703 views
Yuto Suzuki
Follow
Scala, F.O.X
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 47
Download now
Recommended
Ironicを運用して半年が経過しました - OpenStack最新情報セミナー(2016年7月)
Ironicを運用して半年が経過しました - OpenStack最新情報セミナー(2016年7月)
VirtualTech Japan Inc.
MapR Hadoop M7 in CyberAgent AdTech Studio
MapR Hadoop M7 in CyberAgent AdTech Studio
Ken Takao
[db tech showcase Tokyo 2016] B15: サイバーエージェント アドテクスタジオの次世代データ分析基盤紹介 by 株式会社サイ...
[db tech showcase Tokyo 2016] B15: サイバーエージェント アドテクスタジオの次世代データ分析基盤紹介 by 株式会社サイ...
Insight Technology, Inc.
Google big query × Amazon redshift
Google big query × Amazon redshift
Fumihide Nario
データサイエンスを支える基盤とそのテクノロジー@WebDBフォーラム2015 #webdbf2015
データサイエンスを支える基盤とそのテクノロジー@WebDBフォーラム2015 #webdbf2015
Yahoo!デベロッパーネットワーク
How to work Tableau x Google Cloud Platform in CyberAgent AdTech Studio
How to work Tableau x Google Cloud Platform in CyberAgent AdTech Studio
Ken Takao
AbemaTV Developer Conference 2016
AbemaTV Developer Conference 2016
康洋 板敷
広告におけるビッグデータの分析事例
広告におけるビッグデータの分析事例
Ken Takao
Recommended
Ironicを運用して半年が経過しました - OpenStack最新情報セミナー(2016年7月)
Ironicを運用して半年が経過しました - OpenStack最新情報セミナー(2016年7月)
VirtualTech Japan Inc.
MapR Hadoop M7 in CyberAgent AdTech Studio
MapR Hadoop M7 in CyberAgent AdTech Studio
Ken Takao
[db tech showcase Tokyo 2016] B15: サイバーエージェント アドテクスタジオの次世代データ分析基盤紹介 by 株式会社サイ...
[db tech showcase Tokyo 2016] B15: サイバーエージェント アドテクスタジオの次世代データ分析基盤紹介 by 株式会社サイ...
Insight Technology, Inc.
Google big query × Amazon redshift
Google big query × Amazon redshift
Fumihide Nario
データサイエンスを支える基盤とそのテクノロジー@WebDBフォーラム2015 #webdbf2015
データサイエンスを支える基盤とそのテクノロジー@WebDBフォーラム2015 #webdbf2015
Yahoo!デベロッパーネットワーク
How to work Tableau x Google Cloud Platform in CyberAgent AdTech Studio
How to work Tableau x Google Cloud Platform in CyberAgent AdTech Studio
Ken Takao
AbemaTV Developer Conference 2016
AbemaTV Developer Conference 2016
康洋 板敷
広告におけるビッグデータの分析事例
広告におけるビッグデータの分析事例
Ken Takao
10分でわかるサイバーエージェント広告部門のハイブリッドクラウド環境 公開用
10分でわかるサイバーエージェント広告部門のハイブリッドクラウド環境 公開用
Ken Takao
データにまつわるWeb業界の仕事について
データにまつわるWeb業界の仕事について
Masanori Takano
探検隊長が語るSoftLayerデザインパターン
探検隊長が語るSoftLayerデザインパターン
Maho Takara
【SoftLayerのスタートアップ企業支援プログラム Catalyst事例】テラスマイル株式会社
【SoftLayerのスタートアップ企業支援プログラム Catalyst事例】テラスマイル株式会社
softlayerjp
自治体Web service 021114
自治体Web service 021114
伸夫 森本
Fiori 使わないと未来はない、SAPGUI撲滅キャンペーン
Fiori 使わないと未来はない、SAPGUI撲滅キャンペーン
Masayuki Sekihara
SAP Cloud Platform から Microsoft Azureサービス利用は便利だった
SAP Cloud Platform から Microsoft Azureサービス利用は便利だった
Masayuki Sekihara
Google Container Engine と Kubernetes で 無理をしないコンテナ管理
Google Container Engine と Kubernetes で 無理をしないコンテナ管理
Ryosuke Suto
20160526 kintone hive Vol.3 Tokyo
20160526 kintone hive Vol.3 Tokyo
R3 institute
ついに登場SAP Data Warehouse Cloud
ついに登場SAP Data Warehouse Cloud
Masayuki Sekihara
TwilioJP-UG 大阪 第0回 「IoTな時代に向けて クラウドサービスで電話を使いたおそう」クロージング
TwilioJP-UG 大阪 第0回 「IoTな時代に向けて クラウドサービスで電話を使いたおそう」クロージング
Hiroyuki Hiki
kintone hive vol.3 大阪
kintone hive vol.3 大阪
R3 institute
ソフトウェアエンジニアに知ってほしいAerospike
ソフトウェアエンジニアに知ってほしいAerospike
株式会社ジオロジック
Basis必見!次世代型ランドスケープ管理ツール「SAP LaMa」の威力
Basis必見!次世代型ランドスケープ管理ツール「SAP LaMa」の威力
Masayuki Sekihara
サイオステクノロジー
サイオステクノロジー
Nihei Tsukasa
ここまでできるkintone カスタマイズ事例紹介
ここまでできるkintone カスタマイズ事例紹介
Cybozucommunity
Softlayer_summit
Softlayer_summit
Shuichi Yukimoto
スマートスピーカーの提案時によく出てくる課題と、その処方箋のLine
スマートスピーカーの提案時によく出てくる課題と、その処方箋のLine
Hiroyuki Hiki
kintone をフル活用したIoT プロジェクトの話
kintone をフル活用したIoT プロジェクトの話
Cybozucommunity
SoftLayerで始めるデジタルマーケティング
SoftLayerで始めるデジタルマーケティング
Kohei Nishikawa
ご注文はRxですか? -RxSwiftを実際に導入してみた件-
ご注文はRxですか? -RxSwiftを実際に導入してみた件-
Keisuke Tatsumi
あなたのScalaを爆速にする7つの方法
あなたのScalaを爆速にする7つの方法
x1 ichi
More Related Content
What's hot
10分でわかるサイバーエージェント広告部門のハイブリッドクラウド環境 公開用
10分でわかるサイバーエージェント広告部門のハイブリッドクラウド環境 公開用
Ken Takao
データにまつわるWeb業界の仕事について
データにまつわるWeb業界の仕事について
Masanori Takano
探検隊長が語るSoftLayerデザインパターン
探検隊長が語るSoftLayerデザインパターン
Maho Takara
【SoftLayerのスタートアップ企業支援プログラム Catalyst事例】テラスマイル株式会社
【SoftLayerのスタートアップ企業支援プログラム Catalyst事例】テラスマイル株式会社
softlayerjp
自治体Web service 021114
自治体Web service 021114
伸夫 森本
Fiori 使わないと未来はない、SAPGUI撲滅キャンペーン
Fiori 使わないと未来はない、SAPGUI撲滅キャンペーン
Masayuki Sekihara
SAP Cloud Platform から Microsoft Azureサービス利用は便利だった
SAP Cloud Platform から Microsoft Azureサービス利用は便利だった
Masayuki Sekihara
Google Container Engine と Kubernetes で 無理をしないコンテナ管理
Google Container Engine と Kubernetes で 無理をしないコンテナ管理
Ryosuke Suto
20160526 kintone hive Vol.3 Tokyo
20160526 kintone hive Vol.3 Tokyo
R3 institute
ついに登場SAP Data Warehouse Cloud
ついに登場SAP Data Warehouse Cloud
Masayuki Sekihara
TwilioJP-UG 大阪 第0回 「IoTな時代に向けて クラウドサービスで電話を使いたおそう」クロージング
TwilioJP-UG 大阪 第0回 「IoTな時代に向けて クラウドサービスで電話を使いたおそう」クロージング
Hiroyuki Hiki
kintone hive vol.3 大阪
kintone hive vol.3 大阪
R3 institute
ソフトウェアエンジニアに知ってほしいAerospike
ソフトウェアエンジニアに知ってほしいAerospike
株式会社ジオロジック
Basis必見!次世代型ランドスケープ管理ツール「SAP LaMa」の威力
Basis必見!次世代型ランドスケープ管理ツール「SAP LaMa」の威力
Masayuki Sekihara
サイオステクノロジー
サイオステクノロジー
Nihei Tsukasa
ここまでできるkintone カスタマイズ事例紹介
ここまでできるkintone カスタマイズ事例紹介
Cybozucommunity
Softlayer_summit
Softlayer_summit
Shuichi Yukimoto
スマートスピーカーの提案時によく出てくる課題と、その処方箋のLine
スマートスピーカーの提案時によく出てくる課題と、その処方箋のLine
Hiroyuki Hiki
kintone をフル活用したIoT プロジェクトの話
kintone をフル活用したIoT プロジェクトの話
Cybozucommunity
SoftLayerで始めるデジタルマーケティング
SoftLayerで始めるデジタルマーケティング
Kohei Nishikawa
What's hot
(20)
10分でわかるサイバーエージェント広告部門のハイブリッドクラウド環境 公開用
10分でわかるサイバーエージェント広告部門のハイブリッドクラウド環境 公開用
データにまつわるWeb業界の仕事について
データにまつわるWeb業界の仕事について
探検隊長が語るSoftLayerデザインパターン
探検隊長が語るSoftLayerデザインパターン
【SoftLayerのスタートアップ企業支援プログラム Catalyst事例】テラスマイル株式会社
【SoftLayerのスタートアップ企業支援プログラム Catalyst事例】テラスマイル株式会社
自治体Web service 021114
自治体Web service 021114
Fiori 使わないと未来はない、SAPGUI撲滅キャンペーン
Fiori 使わないと未来はない、SAPGUI撲滅キャンペーン
SAP Cloud Platform から Microsoft Azureサービス利用は便利だった
SAP Cloud Platform から Microsoft Azureサービス利用は便利だった
Google Container Engine と Kubernetes で 無理をしないコンテナ管理
Google Container Engine と Kubernetes で 無理をしないコンテナ管理
20160526 kintone hive Vol.3 Tokyo
20160526 kintone hive Vol.3 Tokyo
ついに登場SAP Data Warehouse Cloud
ついに登場SAP Data Warehouse Cloud
TwilioJP-UG 大阪 第0回 「IoTな時代に向けて クラウドサービスで電話を使いたおそう」クロージング
TwilioJP-UG 大阪 第0回 「IoTな時代に向けて クラウドサービスで電話を使いたおそう」クロージング
kintone hive vol.3 大阪
kintone hive vol.3 大阪
ソフトウェアエンジニアに知ってほしいAerospike
ソフトウェアエンジニアに知ってほしいAerospike
Basis必見!次世代型ランドスケープ管理ツール「SAP LaMa」の威力
Basis必見!次世代型ランドスケープ管理ツール「SAP LaMa」の威力
サイオステクノロジー
サイオステクノロジー
ここまでできるkintone カスタマイズ事例紹介
ここまでできるkintone カスタマイズ事例紹介
Softlayer_summit
Softlayer_summit
スマートスピーカーの提案時によく出てくる課題と、その処方箋のLine
スマートスピーカーの提案時によく出てくる課題と、その処方箋のLine
kintone をフル活用したIoT プロジェクトの話
kintone をフル活用したIoT プロジェクトの話
SoftLayerで始めるデジタルマーケティング
SoftLayerで始めるデジタルマーケティング
Viewers also liked
ご注文はRxですか? -RxSwiftを実際に導入してみた件-
ご注文はRxですか? -RxSwiftを実際に導入してみた件-
Keisuke Tatsumi
あなたのScalaを爆速にする7つの方法
あなたのScalaを爆速にする7つの方法
x1 ichi
Apache Drill で見る Twitter の世界
Apache Drill で見る Twitter の世界
Masaru Watanabe
サイバーエージェント様 発表「OpenStackのNWと物理の話」
サイバーエージェント様 発表「OpenStackのNWと物理の話」
VirtualTech Japan Inc.
Atomic Design powered by React @ AbemaTV
Atomic Design powered by React @ AbemaTV
Yusuke Goto
AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境
Katsutoshi Nagaoka
Wowzaを用いた配信基盤 Takusuta tech conf01
Wowzaを用いた配信基盤 Takusuta tech conf01
Kazuhiro Ota
GKEで半年運用してみた
GKEで半年運用してみた
Katsutoshi Nagaoka
ポコロンダンジョンズを彩るアニメーションノウハウ
ポコロンダンジョンズを彩るアニメーションノウハウ
GameCreators,CyberAgent
レスポンシブWebデザインでうまくやるための考え方
レスポンシブWebデザインでうまくやるための考え方
Hayato Mizuno
[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト
Takahiro Moteki
Viewers also liked
(11)
ご注文はRxですか? -RxSwiftを実際に導入してみた件-
ご注文はRxですか? -RxSwiftを実際に導入してみた件-
あなたのScalaを爆速にする7つの方法
あなたのScalaを爆速にする7つの方法
Apache Drill で見る Twitter の世界
Apache Drill で見る Twitter の世界
サイバーエージェント様 発表「OpenStackのNWと物理の話」
サイバーエージェント様 発表「OpenStackのNWと物理の話」
Atomic Design powered by React @ AbemaTV
Atomic Design powered by React @ AbemaTV
AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境
Wowzaを用いた配信基盤 Takusuta tech conf01
Wowzaを用いた配信基盤 Takusuta tech conf01
GKEで半年運用してみた
GKEで半年運用してみた
ポコロンダンジョンズを彩るアニメーションノウハウ
ポコロンダンジョンズを彩るアニメーションノウハウ
レスポンシブWebデザインでうまくやるための考え方
レスポンシブWebデザインでうまくやるための考え方
[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト
Similar to F.O.Xを支える技術
【Halo】スマホアプリ3つの法則 ボケてをアプリ化するときにやったこと121210
【Halo】スマホアプリ3つの法則 ボケてをアプリ化するときにやったこと121210
Osamu Ise
Androidマーケティングに不可欠な15の活動(改) 20111222
Androidマーケティングに不可欠な15の活動(改) 20111222
Hiromitsu Ishimori
海外向けスマホアプリプロモーションサービスについて
海外向けスマホアプリプロモーションサービスについて
TakashiOkaniwa
中国におけるアプリマーケ最新動向
中国におけるアプリマーケ最新動向
Hiromitsu Ishimori
ネイティブマーケティングカンパニーにおけるプロダクトマネージャー
ネイティブマーケティングカンパニーにおけるプロダクトマネージャー
Tomotake Nakamura
202112Cellor紹介資料 (Saleshub用)
202112Cellor紹介資料 (Saleshub用)
SawakoOhno1
グローバルマネタイズ戦略【Metaps(メタップス) pte ltd.】 「グロバール×スマホゲーム」の勝ち方セミナー資料
グローバルマネタイズ戦略【Metaps(メタップス) pte ltd.】 「グロバール×スマホゲーム」の勝ち方セミナー資料
Katsuaki Sato
Ad vol.2
Ad vol.2
Yuto Suzuki
NSA NB委員会セミナー「モバイルアプリ開発業務におけるmonacaの活用」
NSA NB委員会セミナー「モバイルアプリ開発業務におけるmonacaの活用」
アシアル株式会社
11.9 bkclt
11.9 bkclt
Tomokatsu Iguchi
[社内勉強会]ワークフローエンジンdigdag研究&プロダクトF.O.Xに導入
[社内勉強会]ワークフローエンジンdigdag研究&プロダクトF.O.Xに導入
Takahiro Moteki
Androidmarketing15
Androidmarketing15
Hiromitsu Ishimori
130605PixelMags_Introduction
130605PixelMags_Introduction
Yoshi Kashima
Mrmw kokido
Mrmw kokido
MROC Japan
ゲームアプリの事前登録、アイテム配布プロモーション「シリアルコードMail」サービスガイド
ゲームアプリの事前登録、アイテム配布プロモーション「シリアルコードMail」サービスガイド
gamesaver
Boost apps ver1.0
Boost apps ver1.0
hosokawa atsushi
Facebook Analytics for Apps(@Facebookカンファレンス報告会)
Facebook Analytics for Apps(@Facebookカンファレンス報告会)
Adinnovation Inc.
北米市場動向
北米市場動向
gipwest
20111203 第28回WebSig会議_IMJモバイル川畑さん資料
20111203 第28回WebSig会議_IMJモバイル川畑さん資料
WebSig24/7
起業前に知っておきたい、ビジネス拡大のための具体策 先生:佐藤 裕介
起業前に知っておきたい、ビジネス拡大のための具体策 先生:佐藤 裕介
schoowebcampus
Similar to F.O.Xを支える技術
(20)
【Halo】スマホアプリ3つの法則 ボケてをアプリ化するときにやったこと121210
【Halo】スマホアプリ3つの法則 ボケてをアプリ化するときにやったこと121210
Androidマーケティングに不可欠な15の活動(改) 20111222
Androidマーケティングに不可欠な15の活動(改) 20111222
海外向けスマホアプリプロモーションサービスについて
海外向けスマホアプリプロモーションサービスについて
中国におけるアプリマーケ最新動向
中国におけるアプリマーケ最新動向
ネイティブマーケティングカンパニーにおけるプロダクトマネージャー
ネイティブマーケティングカンパニーにおけるプロダクトマネージャー
202112Cellor紹介資料 (Saleshub用)
202112Cellor紹介資料 (Saleshub用)
グローバルマネタイズ戦略【Metaps(メタップス) pte ltd.】 「グロバール×スマホゲーム」の勝ち方セミナー資料
グローバルマネタイズ戦略【Metaps(メタップス) pte ltd.】 「グロバール×スマホゲーム」の勝ち方セミナー資料
Ad vol.2
Ad vol.2
NSA NB委員会セミナー「モバイルアプリ開発業務におけるmonacaの活用」
NSA NB委員会セミナー「モバイルアプリ開発業務におけるmonacaの活用」
11.9 bkclt
11.9 bkclt
[社内勉強会]ワークフローエンジンdigdag研究&プロダクトF.O.Xに導入
[社内勉強会]ワークフローエンジンdigdag研究&プロダクトF.O.Xに導入
Androidmarketing15
Androidmarketing15
130605PixelMags_Introduction
130605PixelMags_Introduction
Mrmw kokido
Mrmw kokido
ゲームアプリの事前登録、アイテム配布プロモーション「シリアルコードMail」サービスガイド
ゲームアプリの事前登録、アイテム配布プロモーション「シリアルコードMail」サービスガイド
Boost apps ver1.0
Boost apps ver1.0
Facebook Analytics for Apps(@Facebookカンファレンス報告会)
Facebook Analytics for Apps(@Facebookカンファレンス報告会)
北米市場動向
北米市場動向
20111203 第28回WebSig会議_IMJモバイル川畑さん資料
20111203 第28回WebSig会議_IMJモバイル川畑さん資料
起業前に知っておきたい、ビジネス拡大のための具体策 先生:佐藤 裕介
起業前に知っておきたい、ビジネス拡大のための具体策 先生:佐藤 裕介
More from Yuto Suzuki
5xx解消への道のり
5xx解消への道のり
Yuto Suzuki
MySQLのインデックス入門
MySQLのインデックス入門
Yuto Suzuki
広告勉強会
広告勉強会
Yuto Suzuki
Mastering Bitcoin ~network~
Mastering Bitcoin ~network~
Yuto Suzuki
Aerospike基本のき
Aerospike基本のき
Yuto Suzuki
いまさらAkkaStream
いまさらAkkaStream
Yuto Suzuki
Introduction of View Through Tracking
Introduction of View Through Tracking
Yuto Suzuki
エンジニアのためのマーケティング
エンジニアのためのマーケティング
Yuto Suzuki
How to Build a Team
How to Build a Team
Yuto Suzuki
プロダクトにおけるScala
プロダクトにおけるScala
Yuto Suzuki
Do you like scala
Do you like scala
Yuto Suzuki
Re invent
Re invent
Yuto Suzuki
Slackから始めるChatOps
Slackから始めるChatOps
Yuto Suzuki
大学の時の研究の話
大学の時の研究の話
Yuto Suzuki
Scala戦士を増やせ
Scala戦士を増やせ
Yuto Suzuki
Recommend scala
Recommend scala
Yuto Suzuki
スクラムに学ぶ開発の回し方
スクラムに学ぶ開発の回し方
Yuto Suzuki
Breezeで始めるデータ分析
Breezeで始めるデータ分析
Yuto Suzuki
進撃のSbt
進撃のSbt
Yuto Suzuki
【LT】 怖くない恐怖のScala.js
【LT】 怖くない恐怖のScala.js
Yuto Suzuki
More from Yuto Suzuki
(20)
5xx解消への道のり
5xx解消への道のり
MySQLのインデックス入門
MySQLのインデックス入門
広告勉強会
広告勉強会
Mastering Bitcoin ~network~
Mastering Bitcoin ~network~
Aerospike基本のき
Aerospike基本のき
いまさらAkkaStream
いまさらAkkaStream
Introduction of View Through Tracking
Introduction of View Through Tracking
エンジニアのためのマーケティング
エンジニアのためのマーケティング
How to Build a Team
How to Build a Team
プロダクトにおけるScala
プロダクトにおけるScala
Do you like scala
Do you like scala
Re invent
Re invent
Slackから始めるChatOps
Slackから始めるChatOps
大学の時の研究の話
大学の時の研究の話
Scala戦士を増やせ
Scala戦士を増やせ
Recommend scala
Recommend scala
スクラムに学ぶ開発の回し方
スクラムに学ぶ開発の回し方
Breezeで始めるデータ分析
Breezeで始めるデータ分析
進撃のSbt
進撃のSbt
【LT】 怖くない恐怖のScala.js
【LT】 怖くない恐怖のScala.js
F.O.Xを支える技術
1.
F.O.Xを支えるScala CyberZ 鈴木 雄登
2.
自己紹介 • 鈴木 雄登 •
株式会社CyberZ • @moc_yuto • http://yuutookun.hatenablog.com/
3.
株式会社 CyberZ スマートフォンに特化した広告マーケティング会社です。 ■事業 ①F.O.X(スマホ広告計測ツール) toBプロダクト:アドテクノロジー事業 ②OPENREC(ゲームプレイ動画メディア) toCプロダクト:スマートフォンメディア事業 e-Sports大会「RAGE」開催
4.
F.O.Xとは? F.O.Xとは、スマホ広告におけるマーケティングの統合プラットフォーム アプリDL、計測、解析、レポートまでを ワンストップで行うことができます。
5.
F.O.Xとは? • 機能の例としては • どの広告からどれくらいインストールされているか? •
アプリの継続率はどれくらいか? • あるイベントポイントにどれくらい到達したか?
6.
今日のアジェンダ • Scalaとの出会い • Scalaでの開発 •
現在のScala
7.
Scalaとの出会い
8.
Scala導入前 • 2014年以前の話 • 作っているものはF.O.Xオンリー
9.
F.O.Xの構成 • SDK • SDKとの通信APIサーバ •
集計サーバ • 管理画面
10.
F.O.Xの当時の構成 集計 計測データ RDB & KVS 計測サーバ(Java) 管理画面(PHP)
11.
当時の使用言語 • サーバーサイド • PHP •
Java • フロントエンド • jQuery…
12.
大量のレガシーコード この先生きのこれない 新しいチャレンジをしよう!
13.
次のプロダクトを新しい言語 で作ってみよう!
14.
言語選定によりScalaに決定
15.
Scalaへの決定要因 • やりたいと手を上げた人が多かった • 理由としては一番大きい •
もともとJavaを使っている人が多かった • 関数型という新しいパラダイムを触れる
16.
実際何を作ることに なったのか?
17.
当時の作成予定のプロダクト • F.O.X新管理画面 • BidExpress
18.
当時の作成予定のプロダクト • F.O.X新管理画面 • BidExpress こちらについて 話します
19.
F.O.Xの当時の構成(再掲) 集計 計測データ RDB & KVS 計測サーバ(Java) 管理画面(PHP)
20.
F.O.Xの当時の構成 集計 計測データ RDB & KVS 計測サーバ(Java) 管理画面(PHP) ここのリプレイス
21.
F.O.Xの新構成 設定 レポート 解析 マーケット調査
22.
この構成で直面した問題 • F.O.XのDBのアクセス部分を各サービスで作る手間 • データモデルの理解が難しい上、 DBもいろんな要件で複雑化 •
DBではバリデーションもできない APIサービスとして切り出し ※モデルの変更は今回のスコープ外
23.
F.O.Xの新構成 ここをつなぐAPIが欲しい
24.
F.O.Xの新構成 APIサーバ
25.
F.O.Xの新構成 APIサーバScala
26.
Scala導入期
27.
Scala投入プロジェクトを決定 • DBアクセスを担うAPIをScalaで作ろう • 新管理画面もScalaで作ろう
28.
開発をスタートするも。。。 • 参考にするソースもわからない • そもそもチーム全員の経験が浅い •
レビューワーがいないため • Scalaのベターな書き方がわからない • 汚いコードに。。
29.
発生する開発遅延 • Scalaの経験が浅いため工数が読めない • 悩めるSlick •
コードの可読性の低下 • 非同期処理のハンドリング
30.
可読性低下の要因 • implicit defの多用 •
省略しすぎ • case classに定義しないでtupleだらけ • mapとタプルの組み合わせで_1だらけに • 各レイヤーで責務が分離されていない • 抽象化できず、コピペ(ry
31.
非同期処理 • WebサーバのデータソースがAPI=非同期処理 • API経由なので、ロジックの中がほぼFuture •
初期はこれが辛かった。 • Seq[Future[Int]]をFuture[Seq[Int]]に変えるとか • 逆にFutureに慣れるスパルタな練習にもなった
32.
ツールの選定
33.
フレームワーク選定基準 API • Sprayを選定 •
APIなので、薄めのフレームワークがよかった • 速い • 既にCyberAgentのアドテクスタジオが運用していた
34.
フレームワーク選定基準 Webサー バ • Play
Framework • 日本語ドキュメントが多い • ブログ記事も一番多い
35.
ORM選定基準 • Slick2系を選択 • 利用ユーザ数が多いとのことで結構エイヤで決めてしまっ た。 •
Typesafeがバックアップしていたというのも大きかった
36.
コネクションプール選定 • CommonsDBCPを選択 • これは元々Javaで使っていたので選択。
37.
シャーディング時の複数DB接続 • メモ化でホスト名を可変に
38.
約1年後のいま
39.
運用 • F.O.X新管理画面、BidExpressともに運用フェーズ • 基本的に運用はほぼJavaと同じ
40.
監視 • インフラ周りの監視は基本的に全てZabbixを利用 • Javaを使っていたので(ry •
akkaなどを使っている場合は、メッセージボックスの監 視など必要だが、今のところそこをチューニングするほ どには至っていない。 • そろそろ入れる予定
41.
コードレビュー体制 • Scalaでコードレビューできる人材が着実に増えている • チームの2人がLGTMを出したらマージ •
レビューする文化を育む LGTM
42.
現在のF.O.Xチーム内のScala • 利用率:約45% • チーム数:4チーム •
使われている場所 • 管理画面用のWebサーバ • API • 高トラフィックな新プロジェクト
43.
リリースサイクル • リリースサイクルは1週間に一度 • CI環境 •
Jenkins • コンパイルが遅いので • CPU4コア、16GBのサーバ • 2プロジェクトで共用
44.
アドテク×Scalaでのメリット • アドテクはとにかく連携が多い • 連携について統一的な規約がない •
なるべく汎用的に作る必要がある • 言語レベルで抽象化がしやすい(型パラメータとかimplicitとかtupleとか) • 新しい連携仕様が度々追加され、変更も多い • 型があると、ドラスティックにリファクタができる • パフォーマンスが求められる部分に最適 • JVMベースなのでパフォーマンスが出しやすい • 非同期処理のハンドリングがすごい楽
45.
まとめ • 初期コストは高い • 継続すると初期コストに見合ったリターンがある •
やりたいという気持ちが大事 • アドテクはScalaが向いている(と思っています)
46.
CyberZでは一緒に ScalaでF.O.Xを成長させる方を 募集中です!! お気軽にお声がけください!
47.
ご清聴ありがとうございまし た。
Download now