Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GCPで行動ログ基盤 を開発している話
Search
kaito2
September 30, 2019
Technology
9
7.7k
GCPで行動ログ基盤 を開発している話
kaito2
September 30, 2019
Tweet
Share
More Decks by kaito2
See All by kaito2
lily58がいいぞっていう話
kaito2
2
960
Other Decks in Technology
See All in Technology
2/18/25: Java meets AI: Build LLM-Powered Apps with LangChain4j
edeandrea
PRO
0
120
Classmethod AI Talks(CATs) #17 司会進行スライド(2025.02.19) / classmethod-ai-talks-aka-cats_moderator-slides_vol17_2025-02-19
shinyaa31
0
120
Classmethod AI Talks(CATs) #16 司会進行スライド(2025.02.12) / classmethod-ai-talks-aka-cats_moderator-slides_vol16_2025-02-12
shinyaa31
0
110
デスクトップだけじゃないUbuntu
mtyshibata
0
120
Platform Engineeringは自由のめまい
nwiizo
4
2.1k
Cloud Spanner 導入で実現した快適な開発と運用について
colopl
1
710
偶然 × 行動で人生の可能性を広げよう / Serendipity × Action: Discover Your Possibilities
ar_tama
1
1.1k
「海外登壇」という 選択肢を与えるために 〜Gophers EX
logica0419
0
710
株式会社EventHub・エンジニア採用資料
eventhub
0
4.3k
現場で役立つAPIデザイン
nagix
33
12k
抽象化をするということ - 具体と抽象の往復を身につける / Abstraction and concretization
soudai
19
7.7k
ハッキングの世界に迫る~攻撃者の思考で考えるセキュリティ~
nomizone
13
5.2k
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Java REST API Framework Comparison - PWX 2021
mraible
28
8.4k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.3k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.8k
A better future with KSS
kneath
238
17k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
630
Building Applications with DynamoDB
mza
93
6.2k
Site-Speed That Sticks
csswizardry
4
380
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Transcript
GCPで行動ログ基盤 を開発している話 エムスリー株式会社 岩月 海人
自己紹介
自己紹介 - 岩月海人 (@kaito_two) - エムスリー株式会社 - AI・機械学習チーム - どちらかというとデータエンジニア
- 2019年 4月16日 新卒(?)入社 - 主にGCP関連の基盤を担当
話すこと
話すこと • m3.com とは? • 行動ログ基盤 ◦ 背景 ◦ 概要
◦ 構成 ◦ 設計・移行で苦しんだトコロ • まとめ
m3.com とは?
m3.com とは? 医師限定会員サイト 医師向けYahooのようなイメージ(多分一つ前でもはなしてある) サイト内に複数サービス(現在20以上)への導線が存在する。
行動ログ基盤 (移行中)
行動ログ基盤 目的 m3.com のサービス横断の広告表出システムをリニューアルする 概要 • 対応サービスのコンテンツの中からユーザーに対しておすすめを表示(パーソナラ イズ) • ユーザーの行動ログからCVをリアルタイムに補足
行動ログ基盤(現状の課題) なぜつくっているか? (既存システムの課題) 1. 各システムとの結合が強い ◦ 表示可能なコンテンツを各サービスに問い合わせている (後述) 2. 他のシステムに相乗りする形で実装されている
◦ 当時の開発スピードが優先されていた 3. 細かいパーソナライズができていない ◦ 現状 「Aさんはニュースサービスが好き」 ◦ やりたい 「AさんはXXXに関するニュースが好き」
各システムとの結合が強い 既存の広告システム 表示可能コンテンツ の問い合わせ 表示可能なコンテンツを 各サービスに問い合わせ ?? ?? ??
(その他にもいくつか内部の事情があり) データパイプライン作ろう
行動ログ基盤 | 構成
行動ログ基盤 | 構成 ユーザーに表示したいコンテンツを登録
行動ログ基盤 | 構成 パーソナライズされた 表示するコンテンツを提供
行動ログ基盤 | 構成 各サービスの行動ログを送信
行動ログ基盤 | 構成 Pub/Sub をサブスクリプションし、 行動ログからCVを判定
行動ログ基盤 | 構成 Pub/Sub をサブスクリプションし、 行動ログからCVを判定 状態を取得・更新
行動ログ基盤 | 構成
行動ログ基盤 | 構成 ココ
API 構成 表示可能なコンテンツを取得 m3の各サービス
API 構成 取得した情報をもとに最適化 (ロジックをPlugableにする)
設計・移行で悩んだトコロ
Pub/Sub のトピックを分割するか 現在は中央のトピックを立てている 関係ない Message でも呼び出される
Pub/Sub のトピックを分割するか Dataflow で分ける方法もあるが現状はしてない マシンリソースと Pub/Subのトラフィックがかかる
Cloud Datastore の制約 • 一度に500エンティティまでしか書き込めない ◦ コンテンツなどをBulkで追加するのが厳しい • Kindごとの削除のコストが高い ◦
Dataflowのジョブを起動する必要がある。 ▪ https://cloud.google.com/datastore/docs/bulk-delete • 基盤システムなので従量課金が厳しい(当たり前) BigTable を採用している
まとめ • m3.com について • m3.com 上のアドの仕組みをリニューアルしている ◦ 様々な課題が ▪
システムの密結合 ▪ パーソナライズに改善の余地 ◦ 行動ログ基盤をつくりリアルタイムなデータの活用を進める • 構築上の悩み ◦ Pub/Sub のトピック構成 ◦ DBの選定(Datastoreが厳しそう)
ありがとうございました