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.8k
GCPで行動ログ基盤 を開発している話
kaito2
September 30, 2019
Tweet
Share
More Decks by kaito2
See All by kaito2
lily58がいいぞっていう話
kaito2
2
970
Other Decks in Technology
See All in Technology
Spice up your notifications/try!Swift25
noppefoxwolf
2
340
はてなの開発20年史と DevOpsの歩み / DevOpsDays Tokyo 2025 Keynote
daiksy
5
1.3k
「家族アルバム みてね」を支えるS3ライフサイクル戦略
fanglang
4
650
DuckDB MCPサーバーを使ってAWSコストを分析させてみた / AWS cost analysis with DuckDB MCP server
masahirokawahara
0
410
ゆるくVPC Latticeについてまとめてみたら、意外と奥深い件
masakiokuda
2
230
食べログが挑む!飲食店ネット予約システムで自動テスト無双して手動テストゼロを実現する戦略
hagevvashi
1
150
開発視点でAWS Signerを考えてみよう!! ~コード署名のその先へ~
masakiokuda
3
130
AI Agentを「期待通り」に動かすために:設計アプローチの模索と現在地
kworkdev
PRO
2
360
Android는 어떻게 화면을 그릴까?
davidkwon7
0
100
プロダクト開発におけるAI時代の開発生産性
shnjtk
2
190
システムとの会話から生まれる先手のDevOps
kakehashi
PRO
0
200
Cursor AgentによるパーソナルAIアシスタント育成入門―業務のプロンプト化・MCPの活用
os1ma
7
1.8k
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.7k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.3k
The Invisible Side of Design
smashingmag
299
50k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.8k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
5
520
A Modern Web Designer's Workflow
chriscoyier
693
190k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
178
52k
Designing for Performance
lara
607
69k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.2k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.5k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
13
660
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が厳しそう)
ありがとうございました