Slide 1

Slide 1 text

GCPで行動ログ基盤 を開発している話 エムスリー株式会社 岩月 海人

Slide 2

Slide 2 text

自己紹介

Slide 3

Slide 3 text

自己紹介 - 岩月海人 (@kaito_two) - エムスリー株式会社 - AI・機械学習チーム - どちらかというとデータエンジニア - 2019年 4月16日 新卒(?)入社 - 主にGCP関連の基盤を担当

Slide 4

Slide 4 text

話すこと

Slide 5

Slide 5 text

話すこと ● m3.com とは? ● 行動ログ基盤 ○ 背景 ○ 概要 ○ 構成 ○ 設計・移行で苦しんだトコロ ● まとめ

Slide 6

Slide 6 text

m3.com とは?

Slide 7

Slide 7 text

m3.com とは? 医師限定会員サイト 医師向けYahooのようなイメージ(多分一つ前でもはなしてある) サイト内に複数サービス(現在20以上)への導線が存在する。

Slide 8

Slide 8 text

行動ログ基盤 (移行中)

Slide 9

Slide 9 text

行動ログ基盤 目的 m3.com のサービス横断の広告表出システムをリニューアルする 概要 ● 対応サービスのコンテンツの中からユーザーに対しておすすめを表示(パーソナラ イズ) ● ユーザーの行動ログからCVをリアルタイムに補足

Slide 10

Slide 10 text

行動ログ基盤(現状の課題) なぜつくっているか? (既存システムの課題) 1. 各システムとの結合が強い ○ 表示可能なコンテンツを各サービスに問い合わせている (後述) 2. 他のシステムに相乗りする形で実装されている ○ 当時の開発スピードが優先されていた 3. 細かいパーソナライズができていない ○ 現状 「Aさんはニュースサービスが好き」 ○ やりたい 「AさんはXXXに関するニュースが好き」

Slide 11

Slide 11 text

各システムとの結合が強い 既存の広告システム 表示可能コンテンツ の問い合わせ 表示可能なコンテンツを 各サービスに問い合わせ ?? ?? ??

Slide 12

Slide 12 text

(その他にもいくつか内部の事情があり) データパイプライン作ろう

Slide 13

Slide 13 text

行動ログ基盤 | 構成

Slide 14

Slide 14 text

行動ログ基盤 | 構成 ユーザーに表示したいコンテンツを登録

Slide 15

Slide 15 text

行動ログ基盤 | 構成 パーソナライズされた 表示するコンテンツを提供

Slide 16

Slide 16 text

行動ログ基盤 | 構成 各サービスの行動ログを送信

Slide 17

Slide 17 text

行動ログ基盤 | 構成 Pub/Sub をサブスクリプションし、 行動ログからCVを判定

Slide 18

Slide 18 text

行動ログ基盤 | 構成 Pub/Sub をサブスクリプションし、 行動ログからCVを判定 状態を取得・更新

Slide 19

Slide 19 text

行動ログ基盤 | 構成

Slide 20

Slide 20 text

行動ログ基盤 | 構成 ココ

Slide 21

Slide 21 text

API 構成 表示可能なコンテンツを取得 m3の各サービス

Slide 22

Slide 22 text

API 構成 取得した情報をもとに最適化 (ロジックをPlugableにする)

Slide 23

Slide 23 text

設計・移行で悩んだトコロ

Slide 24

Slide 24 text

Pub/Sub のトピックを分割するか 現在は中央のトピックを立てている 関係ない Message でも呼び出される

Slide 25

Slide 25 text

Pub/Sub のトピックを分割するか Dataflow で分ける方法もあるが現状はしてない マシンリソースと Pub/Subのトラフィックがかかる

Slide 26

Slide 26 text

Cloud Datastore の制約 ● 一度に500エンティティまでしか書き込めない ○ コンテンツなどをBulkで追加するのが厳しい ● Kindごとの削除のコストが高い ○ Dataflowのジョブを起動する必要がある。 ■ https://cloud.google.com/datastore/docs/bulk-delete ● 基盤システムなので従量課金が厳しい(当たり前) BigTable を採用している

Slide 27

Slide 27 text

まとめ ● m3.com について ● m3.com 上のアドの仕組みをリニューアルしている ○ 様々な課題が ■ システムの密結合 ■ パーソナライズに改善の余地 ○ 行動ログ基盤をつくりリアルタイムなデータの活用を進める ● 構築上の悩み ○ Pub/Sub のトピック構成 ○ DBの選定(Datastoreが厳しそう)

Slide 28

Slide 28 text

ありがとうございました