SlideShare a Scribd company logo
LINE で広告プラットフォームを
Java + Golang で立ち上げた話
#ccc_a2b
JJUG CCC 2018 Fall
2018/12/15
LINE株式会社 サービス開発1室
Tokuhiro Matsuno
Self introduction
 LINE 株式会社サービス開発1室
 Account Business
 LINE @
 LINE Official Account
 Display Ads
 LINE Ads Platform
 B2B 関連の開発マネージャーを担当しています
 LINE Messaging API SDK のリードもしています。
 Java SDK の Original Author
アジェンダ
 LINE Ads Platform のご紹介
 ポリグロットの視点から
 アーキテクチャの選定について
 ポリグロットでグローバルな開発体制における考慮ポイント
What’s LINE Ads Platform?
 LINE の Timeline/LINE NEWS 等に広告配信可能
 LINEマンガなどのファミリーサービスにも配信
LINE ポイントLINE BLOGLINE マンガLINE NEWS タイムライン
歴史
2016年
First release
2018年 Summer
New system
release
新システムを今夏リリースしました
Event
Receiver Big Query Batch Learning
Source
Event
Receiver
Storage
Learning
Source
旧システム
新システム
LINE Ads Platform のアーキテク
チャと Microservices と
Architecture Overview
Apps
Ad SDK
SSP
Performan
ce DSP
Event
Tracker
Log
Storage
Guarrante
eed DSP
DMP
DPA
DSP CMS
大体、どこの
会社でも同じ
通信プロトコルも自明なので
Microservcies 化しやすい
OpenRTB based – Open Real Time
Bidding
業界標準になっている
IAB
LINE の開発機能
日本: 東京, 京都, 福岡
韓国
ベトナム
タイ
台湾
などなど
LINEで広告プラットフォームをJava+Golangで立ち上げた話
拠点間でのプロダクトの移動が多い社風
 一つのプロダクトが途中で移動していく
 東京 → 韓国
 韓国 → 東京
 東京 → 福岡
 などなど。。。
 → 他の拠点で利用してない Tech Stack でやると一生抱える羽目に。。
We’re using Private Cloud
 弊社はメッセンジャーアプリなども運用しておりサーバー台数がめ
ちゃんこあるので、オンプレで運用しています
 OpenStack ベースで Private Cloud を運用
 IaaS
 DNS
 MySQL/Redis/ElasticSearch
 Kafka
 K8s ← beta
育ってきた環境が違う
 自社にもともと広告開発部門がなかった
 最近入ってきた人たちばかり
 バックグラウンドの違い
いったん作ろう大作戦
 アーキテクチャを完全に合わせるよりは、完成速度を重視
 各コンポーネントのリードが決定権を持つ
 揃えられる部分は揃える
結果として。。。
SSP
Java 8 + Boot 2
Data Pipeline
Java 8 + Boot 1.5
Spark(Scala)
DSP Serving
Golang + net/http
SSP CMS
Java 8 + Kotlin +
Boot 2.1
DSP CMS
Java 8 + Boot 1.5
DMP
Java 8 + Boot 2
Golang
lua
どこに気をつけて設計するか
データのやりとり
DSPDMP
Bad Pattern
Over HTTP
Serialized by JSON
再送処理が面倒
Use Kafka: Distributed streaming system
Kafka
• Distributed
• Buffering
• 再送処理が不要
DSPDMP
Produce Consume
Multiple consumers
Kafka
DSP
DMP
Produce Consume
DPA
昔やってたシリアライゼーション
Jar
Java Bean
API
Jackson
Consumer
Jackson
JSON
Polyglot しづらい。
今やってるシリアライゼーション
API
Consumer
Apache Avro
Protobuf
Java
Serializer
Golang
Deserializer
バイナリシリアライゼーション
 Saving Storage
 Improve throughput
まとめ
 Kafka などの中間バッファを置くと協業しやすい
 言語またぐときは Apache Avro/Protobuf 等を使っておくと良い
 Polyglot 怖くない
とはいえ
LINEで広告プラットフォームをJava+Golangで立ち上げた話
結論
_人人人人人人_
> Java 最強 <
 ̄Y^Y^Y^Y^Y ̄
Ad

Recommended

Kong 概要
Kong 概要
Yoshito Tabuchi
 
"Kongゲートウェイ2.5リリース" Kong Konnectアップデート オンラインミートアップ :kong 製品整理、優位性
"Kongゲートウェイ2.5リリース" Kong Konnectアップデート オンラインミートアップ :kong 製品整理、優位性
Junji Nishihara
 
Fy22 q2-la byrinth-event-slides-japan
Fy22 q2-la byrinth-event-slides-japan
Junji Nishihara
 
Kong Enterprise の紹介
Kong Enterprise の紹介
Yoshito Tabuchi
 
Design Pattern MicroServices Architecture in Japanese
Design Pattern MicroServices Architecture in Japanese
Lei Xu
 
API Gatewayご紹介
API Gatewayご紹介
オラクルエンジニア通信
 
The new LINE Ads Platform
The new LINE Ads Platform
LINE Corporation
 
#jjug_ccc #ccc_f1 広告システム刷新の舞台裏 - PHPからJavaに変えてみました
#jjug_ccc #ccc_f1 広告システム刷新の舞台裏 - PHPからJavaに変えてみました
Yahoo!デベロッパーネットワーク
 
JJUG CCC 2018 Fall 懇親会LT
JJUG CCC 2018 Fall 懇親会LT
LINE Corporation
 
Reduce dependency on Rx with Kotlin Coroutines
Reduce dependency on Rx with Kotlin Coroutines
LINE Corporation
 
Kotlin/NativeでAndroidのNativeメソッドを実装してみた
Kotlin/NativeでAndroidのNativeメソッドを実装してみた
LINE Corporation
 
Use Kotlin scripts and Clova SDK to build your Clova extension
Use Kotlin scripts and Clova SDK to build your Clova extension
LINE Corporation
 
The Magic of LINE 購物 Testing
The Magic of LINE 購物 Testing
LINE Corporation
 
GA Test Automation
GA Test Automation
LINE Corporation
 
UI Automation Test with JUnit5
UI Automation Test with JUnit5
LINE Corporation
 
Feature Detection for UI Testing
Feature Detection for UI Testing
LINE Corporation
 
LINE 新星計劃介紹與新創團隊分享
LINE 新星計劃介紹與新創團隊分享
LINE Corporation
 
​LINE 技術合作夥伴與應用分享
​LINE 技術合作夥伴與應用分享
LINE Corporation
 
LINE 開發者社群經營與技術推廣
LINE 開發者社群經營與技術推廣
LINE Corporation
 
日本開發者大會短講分享
日本開發者大會短講分享
LINE Corporation
 
LINE Chatbot - 活動報名報到設計分享
LINE Chatbot - 活動報名報到設計分享
LINE Corporation
 
在 LINE 私有雲中使用 Managed Kubernetes
在 LINE 私有雲中使用 Managed Kubernetes
LINE Corporation
 
LINE TODAY高效率的敏捷測試開發技巧
LINE TODAY高效率的敏捷測試開發技巧
LINE Corporation
 
LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹
LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹
LINE Corporation
 
LINE Things - LINE IoT平台新技術分享
LINE Things - LINE IoT平台新技術分享
LINE Corporation
 
LINE Pay - 一卡通支付新體驗
LINE Pay - 一卡通支付新體驗
LINE Corporation
 
LINE Platform API Update - 打造一個更好的Chatbot服務
LINE Platform API Update - 打造一個更好的Chatbot服務
LINE Corporation
 
Keynote - ​LINE 的技術策略佈局與跨國產品開發
Keynote - ​LINE 的技術策略佈局與跨國產品開發
LINE Corporation
 
Protect Your IoT Data with UbiBot's Private Platform.pptx
Protect Your IoT Data with UbiBot's Private Platform.pptx
ユビボット 株式会社
 
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
フォーガンシー
 

More Related Content

More from LINE Corporation (20)

JJUG CCC 2018 Fall 懇親会LT
JJUG CCC 2018 Fall 懇親会LT
LINE Corporation
 
Reduce dependency on Rx with Kotlin Coroutines
Reduce dependency on Rx with Kotlin Coroutines
LINE Corporation
 
Kotlin/NativeでAndroidのNativeメソッドを実装してみた
Kotlin/NativeでAndroidのNativeメソッドを実装してみた
LINE Corporation
 
Use Kotlin scripts and Clova SDK to build your Clova extension
Use Kotlin scripts and Clova SDK to build your Clova extension
LINE Corporation
 
The Magic of LINE 購物 Testing
The Magic of LINE 購物 Testing
LINE Corporation
 
GA Test Automation
GA Test Automation
LINE Corporation
 
UI Automation Test with JUnit5
UI Automation Test with JUnit5
LINE Corporation
 
Feature Detection for UI Testing
Feature Detection for UI Testing
LINE Corporation
 
LINE 新星計劃介紹與新創團隊分享
LINE 新星計劃介紹與新創團隊分享
LINE Corporation
 
​LINE 技術合作夥伴與應用分享
​LINE 技術合作夥伴與應用分享
LINE Corporation
 
LINE 開發者社群經營與技術推廣
LINE 開發者社群經營與技術推廣
LINE Corporation
 
日本開發者大會短講分享
日本開發者大會短講分享
LINE Corporation
 
LINE Chatbot - 活動報名報到設計分享
LINE Chatbot - 活動報名報到設計分享
LINE Corporation
 
在 LINE 私有雲中使用 Managed Kubernetes
在 LINE 私有雲中使用 Managed Kubernetes
LINE Corporation
 
LINE TODAY高效率的敏捷測試開發技巧
LINE TODAY高效率的敏捷測試開發技巧
LINE Corporation
 
LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹
LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹
LINE Corporation
 
LINE Things - LINE IoT平台新技術分享
LINE Things - LINE IoT平台新技術分享
LINE Corporation
 
LINE Pay - 一卡通支付新體驗
LINE Pay - 一卡通支付新體驗
LINE Corporation
 
LINE Platform API Update - 打造一個更好的Chatbot服務
LINE Platform API Update - 打造一個更好的Chatbot服務
LINE Corporation
 
Keynote - ​LINE 的技術策略佈局與跨國產品開發
Keynote - ​LINE 的技術策略佈局與跨國產品開發
LINE Corporation
 
JJUG CCC 2018 Fall 懇親会LT
JJUG CCC 2018 Fall 懇親会LT
LINE Corporation
 
Reduce dependency on Rx with Kotlin Coroutines
Reduce dependency on Rx with Kotlin Coroutines
LINE Corporation
 
Kotlin/NativeでAndroidのNativeメソッドを実装してみた
Kotlin/NativeでAndroidのNativeメソッドを実装してみた
LINE Corporation
 
Use Kotlin scripts and Clova SDK to build your Clova extension
Use Kotlin scripts and Clova SDK to build your Clova extension
LINE Corporation
 
The Magic of LINE 購物 Testing
The Magic of LINE 購物 Testing
LINE Corporation
 
UI Automation Test with JUnit5
UI Automation Test with JUnit5
LINE Corporation
 
Feature Detection for UI Testing
Feature Detection for UI Testing
LINE Corporation
 
LINE 新星計劃介紹與新創團隊分享
LINE 新星計劃介紹與新創團隊分享
LINE Corporation
 
​LINE 技術合作夥伴與應用分享
​LINE 技術合作夥伴與應用分享
LINE Corporation
 
LINE 開發者社群經營與技術推廣
LINE 開發者社群經營與技術推廣
LINE Corporation
 
日本開發者大會短講分享
日本開發者大會短講分享
LINE Corporation
 
LINE Chatbot - 活動報名報到設計分享
LINE Chatbot - 活動報名報到設計分享
LINE Corporation
 
在 LINE 私有雲中使用 Managed Kubernetes
在 LINE 私有雲中使用 Managed Kubernetes
LINE Corporation
 
LINE TODAY高效率的敏捷測試開發技巧
LINE TODAY高效率的敏捷測試開發技巧
LINE Corporation
 
LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹
LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹
LINE Corporation
 
LINE Things - LINE IoT平台新技術分享
LINE Things - LINE IoT平台新技術分享
LINE Corporation
 
LINE Pay - 一卡通支付新體驗
LINE Pay - 一卡通支付新體驗
LINE Corporation
 
LINE Platform API Update - 打造一個更好的Chatbot服務
LINE Platform API Update - 打造一個更好的Chatbot服務
LINE Corporation
 
Keynote - ​LINE 的技術策略佈局與跨國產品開發
Keynote - ​LINE 的技術策略佈局與跨國產品開發
LINE Corporation
 

Recently uploaded (8)

Protect Your IoT Data with UbiBot's Private Platform.pptx
Protect Your IoT Data with UbiBot's Private Platform.pptx
ユビボット 株式会社
 
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
フォーガンシー
 
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
NTT DATA Technology & Innovation
 
AI技術共有会2025-06-05_DeepResearchの理解と実践.pdf
AI技術共有会2025-06-05_DeepResearchの理解と実践.pdf
Takuma Oda
 
勉強会_ターミナルコマンド入力迅速化_20250620. pptx. .
勉強会_ターミナルコマンド入力迅速化_20250620. pptx. .
iPride Co., Ltd.
 
OWASP ASVS5.0 overview 20240607_owaspnagoya
OWASP ASVS5.0 overview 20240607_owaspnagoya
OWASP Nagoya
 
色について.pptx .
色について.pptx .
iPride Co., Ltd.
 
Vibe Codingを始めよう 〜Cursorを例に、ノーコードでのプログラミング体験〜
Vibe Codingを始めよう 〜Cursorを例に、ノーコードでのプログラミング体験〜
iPride Co., Ltd.
 
Protect Your IoT Data with UbiBot's Private Platform.pptx
Protect Your IoT Data with UbiBot's Private Platform.pptx
ユビボット 株式会社
 
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
Forguncy 10 製品概要資料 - ノーコードWebアプリ開発プラットフォーム
フォーガンシー
 
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
NTT DATA Technology & Innovation
 
AI技術共有会2025-06-05_DeepResearchの理解と実践.pdf
AI技術共有会2025-06-05_DeepResearchの理解と実践.pdf
Takuma Oda
 
勉強会_ターミナルコマンド入力迅速化_20250620. pptx. .
勉強会_ターミナルコマンド入力迅速化_20250620. pptx. .
iPride Co., Ltd.
 
OWASP ASVS5.0 overview 20240607_owaspnagoya
OWASP ASVS5.0 overview 20240607_owaspnagoya
OWASP Nagoya
 
Vibe Codingを始めよう 〜Cursorを例に、ノーコードでのプログラミング体験〜
Vibe Codingを始めよう 〜Cursorを例に、ノーコードでのプログラミング体験〜
iPride Co., Ltd.
 
Ad

LINEで広告プラットフォームをJava+Golangで立ち上げた話