Slide 1

Slide 1 text

https://www.monotaro.com/ 1

Slide 2

Slide 2 text

https://www.monotaro.com/ 2020.2.13 自己紹介 2

Slide 3

Slide 3 text

https://www.monotaro.com/ 2020.2.13 目次 3 ● モノタロウのご紹介  ● データマーケティングを支えるデータ基盤 ● ECサイトを支えるシステムのリアーキテク チャリング ● まとめ

Slide 4

Slide 4 text

https://www.monotaro.com/ 2020.2.13 4

Slide 5

Slide 5 text

https://www.monotaro.com/ 2020.2.13 5 間接資材とは 工具・消耗品 事務用品 科学用品 カー用品 原材料以外は、間接資材

Slide 6

Slide 6 text

https://www.monotaro.com/ 2020.2.13 6 間接資材購買 – モノタロウ以前 人的コスト 時間がかかる 商品がほしい 複数・多種な 営業に連絡 見積 価格交渉 発注  納期確定 納品 いくら?? いつ届くの!?

Slide 7

Slide 7 text

https://www.monotaro.com/ 2020.2.13 7 間接資材購買 – モノタロウ以後 商品がほしい 翌日届く すぐ届く 価格交渉なし 購買に関わるコストを大きく下げる

Slide 8

Slide 8 text

https://www.monotaro.com/ 2020.2.13 企業における間接資材の調達プロセスをテクノロジーと データで圧倒的に簡単にする モノタロウの提供している価値 One Price One Stop Easy to Buy 価格透明性がある 必要なもの全部ある すぐ見つかる、買える 8

Slide 9

Slide 9 text

https://www.monotaro.com/ 2020.2.13 9 20%以上成長を10年継続 ・データマーケティングが成長を牽引 ・システムは常にキャパシティとの戦いでもある 2019年 1,200億円を突破

Slide 10

Slide 10 text

https://www.monotaro.com/ 2020.2.13 あらゆる顧客接点をデータを活用して最適化していく モノタロウのデータマーケティング 10 SEO/SEM プッシュ型マーケティング 検索 リコメンド 業種別最適化 パーソナライズ 特価・クーポン施策 誰に 何を いつ どのくらい

Slide 11

Slide 11 text

https://www.monotaro.com/ 2020.2.13 11 例1:ユーザの業種で検索の表 示順を最適化する 検索最適化のほんの一例 例2:商品のマスタにない専門ワード、 業界用語も検索可能にする 医療系ユーザ 製造業ユーザ ・データ、アルゴリズムによって検索の顧客体験の最適化を行う ・しかし商品数は1800万SKUあるため、手動でのチューニングは不可能 ・それをエンジニアリングによって自動化・仕組化していくことが重要

Slide 12

Slide 12 text

https://www.monotaro.com/ 2020.2.13 AI無人店舗 12 エンジニアリングドリブンなカルチャー 自動倉庫 ピッキング

Slide 13

Slide 13 text

https://www.monotaro.com/ 2020.2.13 https://www.monotaro.com/ モノタロウのデータマーケティングを 支えるデータ基盤 13

Slide 14

Slide 14 text

https://www.monotaro.com/ 2020.2.13 旧データ基盤(〜2017)の問題点 ● データ保存場所が分散 → データ移動が大変 ● オンプレデータ基盤のサーバスペックが足りない ● 分析に必要なデータが揃っていない データが集約されていて、スケールできて、使いやすく、 管理しやすく、コストも安いデータ基盤がほしい! 14

Slide 15

Slide 15 text

https://www.monotaro.com/ 2020.2.13 15 扱えるデータ量 作成されたレポート数 SQL 業務利用者人数 10× 10× 5× ~ 100 テーブル 1000 テーブル~ ~ 30 レポート 300 レポート~ ~ 10 人 50 人~ ( IT エンジニア以外 ) データ基盤導入の成果

Slide 16

Slide 16 text

https://www.monotaro.com/ 2020.2.13 1. 全ての必要なデータを1箇所に集約 2. CDC(Change Data Capture)による安定し たデータ連携 3. 業務担当者(非エンジニア)によるSQLデータ 分析の浸透 16 データ基盤が活用されたポイント

Slide 17

Slide 17 text

https://www.monotaro.com/ 2020.2.13 その1 あらゆるデータを1箇所に集めた 17 データ基盤が活用されたポイント

Slide 18

Slide 18 text

https://www.monotaro.com/ 2020.2.13 18 BigQuery Export Binlog Connector Raw Data DWH EC Site Application Data Source ETL DWH/DataMart Application Kinesis Lambda Cloud Dataproc BigQuery Compute Engine

Slide 19

Slide 19 text

https://www.monotaro.com/ 2020.2.13 BigQueryの利用 ● フルマネージド ● シンプル ● 圧倒的スケーラビリティ ● GSuite 連携 (アカウントの準備とか不要) ● Google Analytics 連携 (Google Marketing Platform) 19 BigQuery

Slide 20

Slide 20 text

https://www.monotaro.com/ 2020.2.13 その2 CDC(Change Data Capture)による安定した データ連携 20 データ基盤が活用されたポイント

Slide 21

Slide 21 text

https://www.monotaro.com/ 2020.2.13 CDCによるデータ連携 ● データの変更情報のみを取得、処理を行うCDC (Change Data Caputure)を行い、擬似的にSlaveDB作成 ● マスターのDBに負荷をかけず、安定してデータを連携で きた ● メインとなる基幹のDB(MySQL)でBinLog Connectorを利 用して実現している 21

Slide 22

Slide 22 text

https://www.monotaro.com/ 2020.2.13 22 Cloud Pub/Sub 基幹システム, EC サイト MySQL Binlog Connector MySQL BigQuery Binlog Connector MySQL Binlog Connector Schematizer App Engine Processor Compute Engine Bookkeeper Compute Engine DDL DML Schema Schema Merge Job Schema Updates Row Data BinLog Connectorの仕組み

Slide 23

Slide 23 text

https://www.monotaro.com/ 2020.2.13 ● データ基盤に出来るだけリアルタイムに近いデータ利用の ニーズがあった。
 ● 従来の方法(mysqldump や select 結果を同期) だと物理削除 に対応できないケースがある
 ● 従来の方法だと差分更新できないケースがある
 ○ 更新時間の値が信用できない
 ○ 更新されたレコードを把握するためのクエリが負荷が高い
 23 BinLog Connectorを使った理由

Slide 24

Slide 24 text

https://www.monotaro.com/ 2020.2.13 その3 業務担当者(非エンジニア)によるSQLデータ分析 24 データ活用が社内で浸透した3つのポイント

Slide 25

Slide 25 text

https://www.monotaro.com/ 2020.2.13 ● もともと業務担当者にニーズがあった ● 分析依頼を行なっているとスピードが遅い ● 業務担当者が直接クエリを流せれば的確な分析 ができる ● BiqQueryの場合、同時実行クエリの増加によ る遅延がおきづらいという利点もあった 25 なぜ非エンジニアにDB基盤を解放したか

Slide 26

Slide 26 text

https://www.monotaro.com/ 2020.2.13 ● 定期的なSQL/BigQuery/DataStudio 研修 ● もともとデータ分析を行う社風 ● SlackのHelpチャネルでQAを色々な 人が行う文化 26 どうやってSQLを組織的に学んだのか

Slide 27

Slide 27 text

https://www.monotaro.com/ 2020.2.13 データ活用現状 27 ❏ マーケター ❏ マーチャンダイザー ❏ カスタマーサポート ❏ 物流 ❏ セールス (全ての部門で利用) レポート作 成 分析(SQL) データソースと して利用 業務アプリ ケーション 参照 or ダウンロード ❏全社的に利用 ❏全社的に利用 (ユーザ数は全社員の約 30%)

Slide 28

Slide 28 text

https://www.monotaro.com/ 2020.2.13 IAM管理 ● あらゆるデータを基盤上に持ってきたが秘匿データは適切な人にだ け見るようにする →マスキングとAuthorized View コスト管理  ● あらゆる人にアドホックなクエリを許可している  →ハイコストなクエリをリアルタイムで検知 ● 全体の利用状況は把握できるようにしたい  →GCP Censusで利用状況を可視化/チェック 28 データ基盤運用での管理ポイント

Slide 29

Slide 29 text

https://www.monotaro.com/ 2020.2.13 29 さらにECアプリケーションでの活用 EC App DWH  BigQuery Application(API) GKE Application  Cloud  Bigtable パーソナライズ化したデータをAPIを通してECのアプリ ケーションで利用可能にした データサイエンティス トがパーソナライズを 生成

Slide 30

Slide 30 text

https://www.monotaro.com/ 2020.2.13 ・データ基盤が整い活用も進んだ。これをより広げ全ての顧 客接点での活用をより素早くできるようにしたい。 ・より高度な顧客接点での最適化 - パーソナライズの拡充と リアルタイム化を実現したい →そのためには現状のECアプリケーションをリアーキテク チャリングする必要がある 30 ECアプリケーション刷新の必要性の高まり

Slide 31

Slide 31 text

https://www.monotaro.com/ 2020.2.13 https://www.monotaro.com/ これからのECサイトの成長を支える システムのリアーキテクチャリング 31

Slide 32

Slide 32 text

https://www.monotaro.com/ 2020.2.13 https://www.monotaro.com/ セッション数: 数千万/月 注文数: 数十万/月 32 モノタロウ ECサイトとは

Slide 33

Slide 33 text

https://www.monotaro.com/ 2020.2.13 モノタロウ ECサイトの構成要素 33 ● トップページ ● 商品ページ ● 検索 ● カート ● マイページ ● お気に入り ● 商品レビュー etc. 在庫 商品 価格 注文 顧客 キャン ペーン レビュー 請求 出荷 問い合 わせ 倉庫 カート 納期

Slide 34

Slide 34 text

https://www.monotaro.com/ 2020.2.13 ECサイトを取り巻く状況 34 セキュリティ ● Chrome SameSite ● Apple iTP2.1 システム関係 ● 既存コードのリファクタリング ● APIエンドポイント・リクエスト数増加 ● リアルタイムマーケティング施策増 ファーストパーティーの データ活用 スケーラビリティとアジ リティの両立

Slide 35

Slide 35 text

https://www.monotaro.com/ 2020.2.13 モノタロウのマーケティング 35 様々なデータを活用して ● SEM/リスティング広告 ● 業種別リコメンド ● 検索結果最適化 ● キャンペーン・特価 ● プッシュマーケティング などをリアルタイムに最適化していきたい Life Time Value

Slide 36

Slide 36 text

https://www.monotaro.com/ 2020.2.13 36 現在のシステムの全体像 EC システム 基幹システム MySQL MySQL MySQL マーケティング システム BigQuery App Engine Cloud Bigtable Application Application Application Application Application Application Web API

Slide 37

Slide 37 text

https://www.monotaro.com/ 2020.2.13 データ活用に適したアーキテクチャへ 37 ● 非対称なマルチクラウド ○ AWSにECサイト ○ GCPにデータ基盤 ○ オンプレに基幹システム ● ReadModel、更新頻度のばらつき ● DBスキーマ ● フロントエンド ● マーケターのダッシュボード

Slide 38

Slide 38 text

https://www.monotaro.com/ 2020.2.13 REST API化は進んだが問題も出てきた ● エンドポイント増加 ● コール数増加/依存の複雑化 ● ロジックの属人化 ● DBのスケーラビリティ ● 検索インデックスへの負荷集中 ● データモデルのばらつき データ活用に適したアーキテクチャへ 38

Slide 39

Slide 39 text

https://www.monotaro.com/ 2020.2.13 39 目指すシステムの全体像 Data Platform BigQuery Cloud Bigtable API Platform Kubernetes Engine API Gateway Real-Time Data Pipeline Cloud Pub/Sub Cloud Dataflow Cloud Bigtable Cloud Pub/Sub Applications Kubernetes Engine App Engine サブシステム群 EC アプリケーション Database Database CDC Application Application オーダーマネジメントシステム Database Database Connector Application 商品情報管理システム Database Database Connector Application マーケティングシステム Database Database Connector Application その他サブシステム Database Database Connector Application

Slide 40

Slide 40 text

https://www.monotaro.com/ 2020.2.13 データ活用に適したアーキテクチャへ 40 例: リコメンド、パーソナライズ ● リリースが容易でスケーラブルなAPI ● 常に最新のデータが反映されたストレージ ● 持続的な成長を支えるインフラ -> システムとデータ基盤が共通のアーキテクチャに

Slide 41

Slide 41 text

https://www.monotaro.com/ 2020.2.13 既存API群のMicroservice化 41 サイトでのデータ活用とスケーリングのため One database per Microservice化 Monolithic DB Web App Web App Web API Web App Web App Web API Microservice Microservice Microservice

Slide 42

Slide 42 text

https://www.monotaro.com/ 2020.2.13 巨大バッチのEvent-Driven化 42 購入、出荷などUXに関わるイベントでビューを逐次更新し たい。マーケティングもリアルタイム化したい。 購入 逐次処理 出荷 マイページ 逐次処理

Slide 43

Slide 43 text

https://www.monotaro.com/ 2020.2.13 システムへのChange Data Captureの活用 43 データ基盤同様、MySQLのbinlogのイベントを使う サブシステム MySQL サブシステム MySQL サブシステム MySQL Table Table Table Cloud Bigtable Cloud Pub/Sub binlogを使ってテー ブルをそのままレ プリケート Microservice (詳細は”binlog stream”でggってみましょう)

Slide 44

Slide 44 text

https://www.monotaro.com/ 2020.2.13 CDCによるデータパイプライン 44 サブシステム MySQL サブシステム MySQL サブシステム MySQL Cloud Pub/Sub Table Table Table Application 変更イベントごとに ビューを更新 KVS データ パイプライン Cloud Dataflow Cloud Spanner 様々なデータで イベントをEnrich 常に最新 のデータ Cloud Bigtable

Slide 45

Slide 45 text

https://www.monotaro.com/ 2020.2.13 リアーキテクチャリングと技術スタック 45 データ基盤のスタック      ECサイトのスタック 漸進的にギャップを埋める -> リアーキテクチャリング Cloud Dataflow Cloud Pub/Sub Kubernetes Engine Cloud Bigtable

Slide 46

Slide 46 text

https://www.monotaro.com/ 2020.2.13 運用のデータドリブン化 46 変化への柔軟な対応 ● ユーザー数・売上の伸び ● 新たな施策やトラフィックの変動 ● A/Bテスト・カナリアリリース -> SLO/SLIによるデータドリブンな運用 BigQuery Kubernetes Engine

Slide 47

Slide 47 text

https://www.monotaro.com/ 2020.2.13 47 目指すシステムの全体像 Data Platform BigQuery Cloud Bigtable API Platform Kubernetes Engine API Gateway Real-Time Data Pipeline Cloud Pub/Sub Cloud Dataflow Cloud Bigtable Cloud Pub/Sub Applications Kubernetes Engine App Engine サブシステム群 EC アプリケーション Database Database CDC Application Application オーダーマネジメントシステム Database Database Connector Application 商品情報管理システム Database Database Connector Application マーケティングシステム Database Database Connector Application その他サブシステム Database Database Connector Application

Slide 48

Slide 48 text

https://www.monotaro.com/ 2020.2.13 ● データ基盤とシステムを(アーキテクチャ的に)統合 ● リファクタリング+リアーキテクチャリング ○ データ活用のためのMicroservice化 ○ データの価値を高めるイベントドリブン化 ● 変化に強いデータドリブンなインフラ ○ SRE 48 まとめ

Slide 49

Slide 49 text

https://www.monotaro.com/ 2020.2.13 配布資料の2次元バーコードからアンケート フォームへご回答よろしくお願いします ブースにてマスク等粗品を お渡しします 49 アンケートご回答よろしくお願いします

Slide 50

Slide 50 text

エンジニア募集中 本社(尼崎)/東京オフィス(赤坂)

Slide 51

Slide 51 text

https://www.monotaro.com/ 2020.2.13 急成長するモノタロウと一緒に働いてみませんか? ● 自社開発・自社運用で、全社/全業務でITを駆使する テクノロジー企業です ● 本社は関西ですが、東京も開発の中心になるべく幅広い 職種を募集しています ○ ITエンジニア、データサイエンティスト、デジタル マーケター、プロダクトマネージャー ● 詳しくは https://recruit.monotaro.com/ 51

Slide 52

Slide 52 text

https://www.monotaro.com/ 52