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
monotaro_devsumi2020winter
Search
Youichi Fujimoto
February 13, 2020
Technology
5.7k
10
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
monotaro_devsumi2020winter
Youichi Fujimoto
February 13, 2020
More Decks by Youichi Fujimoto
See All by Youichi Fujimoto
Schema first approach to GraphQL server development in Go
fpt
1
3.2k
Other Decks in Technology
See All in Technology
AI活用を推進するために ファインディが下した、一つの小さな決断
starfish719
0
250
「速く作る」から「正しく作る」へ ─ 生成AI時代の開発フロー改革の ロードマップと実行 ─
starfish719
0
7.8k
「気づいたら仕事が終わっている」バクラクAIエージェント本番運用の裏側 / layerx-bakuraku-aie2026
yuya4
18
10k
個人最適 から 全体最適 へ AI情報共有会・AIギルド・AI-DLC で進める カンリーの組織展開
rfdnxbro
0
1.5k
BigQuery の Cross-cloud Lakehouse への歩み
phaya72
2
550
正解のないAIプロダクトをどう導くか?dodaが挑む、ユーザーの『本音』を構造化する評価設計と検証のリアル
techtekt
PRO
0
180
運用を見据えたAIエージェント設計実践
amacbee
1
2.9k
AIプラットフォームを運用し続けるための可観測性
tanimuyk
4
1.1k
価格.comをAI駆動で全面刷新する ー 30年分の技術的負債を返し、次の30年の土台をつくる ー / AI Engineering Summit Tokyo 2026
tkyowa
49
53k
JEP 522 Deep Dive - G1 GC同期コスト削減によるスループット向上を徹底検証&解説
tabatad
1
870
AI-DLCを活用した高品質・安全なAI駆動開発実践 / AI Driven Development with AI-DLC
yoshidashingo
0
140
【Gen-AX】20260530開催_JJUG CCC 2026 Spring
genax
0
420
Featured
See All Featured
[SF Ruby Conf 2025] Rails X
palkan
2
1.1k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
550
Information Architects: The Missing Link in Design Systems
soysaucechin
0
960
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
The Cult of Friendly URLs
andyhume
79
6.9k
We Are The Robots
honzajavorek
0
240
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
320
Art, The Web, and Tiny UX
lynnandtonic
304
22k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
200
The Limits of Empathy - UXLibs8
cassininazir
1
350
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Transcript
https://www.monotaro.com/ 1
https://www.monotaro.com/ 2020.2.13 自己紹介 2
https://www.monotaro.com/ 2020.2.13 目次 3 • モノタロウのご紹介 • データマーケティングを支えるデータ基盤 • ECサイトを支えるシステムのリアーキテク
チャリング • まとめ
https://www.monotaro.com/ 2020.2.13 4
https://www.monotaro.com/ 2020.2.13 5 間接資材とは 工具・消耗品 事務用品 科学用品 カー用品 原材料以外は、間接資材
https://www.monotaro.com/ 2020.2.13 6 間接資材購買 – モノタロウ以前 人的コスト 時間がかかる 商品がほしい 複数・多種な
営業に連絡 見積 価格交渉 発注 納期確定 納品 いくら?? いつ届くの!?
https://www.monotaro.com/ 2020.2.13 7 間接資材購買 – モノタロウ以後 商品がほしい 翌日届く すぐ届く 価格交渉なし
購買に関わるコストを大きく下げる
https://www.monotaro.com/ 2020.2.13 企業における間接資材の調達プロセスをテクノロジーと データで圧倒的に簡単にする モノタロウの提供している価値 One Price One Stop Easy
to Buy 価格透明性がある 必要なもの全部ある すぐ見つかる、買える 8
https://www.monotaro.com/ 2020.2.13 9 20%以上成長を10年継続 ・データマーケティングが成長を牽引 ・システムは常にキャパシティとの戦いでもある 2019年 1,200億円を突破
https://www.monotaro.com/ 2020.2.13 あらゆる顧客接点をデータを活用して最適化していく モノタロウのデータマーケティング 10 SEO/SEM プッシュ型マーケティング 検索 リコメンド 業種別最適化
パーソナライズ 特価・クーポン施策 誰に 何を いつ どのくらい
https://www.monotaro.com/ 2020.2.13 11 例1:ユーザの業種で検索の表 示順を最適化する 検索最適化のほんの一例 例2:商品のマスタにない専門ワード、 業界用語も検索可能にする 医療系ユーザ 製造業ユーザ
・データ、アルゴリズムによって検索の顧客体験の最適化を行う ・しかし商品数は1800万SKUあるため、手動でのチューニングは不可能 ・それをエンジニアリングによって自動化・仕組化していくことが重要
https://www.monotaro.com/ 2020.2.13 AI無人店舗 12 エンジニアリングドリブンなカルチャー 自動倉庫 ピッキング
https://www.monotaro.com/ 2020.2.13 https://www.monotaro.com/ モノタロウのデータマーケティングを 支えるデータ基盤 13
https://www.monotaro.com/ 2020.2.13 旧データ基盤(〜2017)の問題点 • データ保存場所が分散 → データ移動が大変 • オンプレデータ基盤のサーバスペックが足りない •
分析に必要なデータが揃っていない データが集約されていて、スケールできて、使いやすく、 管理しやすく、コストも安いデータ基盤がほしい! 14
https://www.monotaro.com/ 2020.2.13 15 扱えるデータ量 作成されたレポート数 SQL 業務利用者人数 10× 10× 5×
~ 100 テーブル 1000 テーブル~ ~ 30 レポート 300 レポート~ ~ 10 人 50 人~ ( IT エンジニア以外 ) データ基盤導入の成果
https://www.monotaro.com/ 2020.2.13 1. 全ての必要なデータを1箇所に集約 2. CDC(Change Data Capture)による安定し たデータ連携 3.
業務担当者(非エンジニア)によるSQLデータ 分析の浸透 16 データ基盤が活用されたポイント
https://www.monotaro.com/ 2020.2.13 その1 あらゆるデータを1箇所に集めた 17 データ基盤が活用されたポイント
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
https://www.monotaro.com/ 2020.2.13 BigQueryの利用 • フルマネージド • シンプル • 圧倒的スケーラビリティ •
GSuite 連携 (アカウントの準備とか不要) • Google Analytics 連携 (Google Marketing Platform) 19 BigQuery
https://www.monotaro.com/ 2020.2.13 その2 CDC(Change Data Capture)による安定した データ連携 20 データ基盤が活用されたポイント
https://www.monotaro.com/ 2020.2.13 CDCによるデータ連携 • データの変更情報のみを取得、処理を行うCDC (Change Data Caputure)を行い、擬似的にSlaveDB作成 • マスターのDBに負荷をかけず、安定してデータを連携で
きた • メインとなる基幹のDB(MySQL)でBinLog Connectorを利 用して実現している 21
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の仕組み
https://www.monotaro.com/ 2020.2.13 • データ基盤に出来るだけリアルタイムに近いデータ利用の ニーズがあった。 • 従来の方法(mysqldump や select 結果を同期)
だと物理削除 に対応できないケースがある • 従来の方法だと差分更新できないケースがある ◦ 更新時間の値が信用できない ◦ 更新されたレコードを把握するためのクエリが負荷が高い 23 BinLog Connectorを使った理由
https://www.monotaro.com/ 2020.2.13 その3 業務担当者(非エンジニア)によるSQLデータ分析 24 データ活用が社内で浸透した3つのポイント
https://www.monotaro.com/ 2020.2.13 • もともと業務担当者にニーズがあった • 分析依頼を行なっているとスピードが遅い • 業務担当者が直接クエリを流せれば的確な分析 ができる •
BiqQueryの場合、同時実行クエリの増加によ る遅延がおきづらいという利点もあった 25 なぜ非エンジニアにDB基盤を解放したか
https://www.monotaro.com/ 2020.2.13 • 定期的なSQL/BigQuery/DataStudio 研修 • もともとデータ分析を行う社風 • SlackのHelpチャネルでQAを色々な 人が行う文化
26 どうやってSQLを組織的に学んだのか
https://www.monotaro.com/ 2020.2.13 データ活用現状 27 ❏ マーケター ❏ マーチャンダイザー ❏ カスタマーサポート
❏ 物流 ❏ セールス (全ての部門で利用) レポート作 成 分析(SQL) データソースと して利用 業務アプリ ケーション 参照 or ダウンロード ❏全社的に利用 ❏全社的に利用 (ユーザ数は全社員の約 30%)
https://www.monotaro.com/ 2020.2.13 IAM管理 • あらゆるデータを基盤上に持ってきたが秘匿データは適切な人にだ け見るようにする →マスキングとAuthorized View コスト管理 • あらゆる人にアドホックなクエリを許可している
→ハイコストなクエリをリアルタイムで検知 • 全体の利用状況は把握できるようにしたい →GCP Censusで利用状況を可視化/チェック 28 データ基盤運用での管理ポイント
https://www.monotaro.com/ 2020.2.13 29 さらにECアプリケーションでの活用 EC App DWH BigQuery Application(API) GKE
Application Cloud Bigtable パーソナライズ化したデータをAPIを通してECのアプリ ケーションで利用可能にした データサイエンティス トがパーソナライズを 生成
https://www.monotaro.com/ 2020.2.13 ・データ基盤が整い活用も進んだ。これをより広げ全ての顧 客接点での活用をより素早くできるようにしたい。 ・より高度な顧客接点での最適化 - パーソナライズの拡充と リアルタイム化を実現したい →そのためには現状のECアプリケーションをリアーキテク チャリングする必要がある
30 ECアプリケーション刷新の必要性の高まり
https://www.monotaro.com/ 2020.2.13 https://www.monotaro.com/ これからのECサイトの成長を支える システムのリアーキテクチャリング 31
https://www.monotaro.com/ 2020.2.13 https://www.monotaro.com/ セッション数: 数千万/月 注文数: 数十万/月 32 モノタロウ ECサイトとは
https://www.monotaro.com/ 2020.2.13 モノタロウ ECサイトの構成要素 33 • トップページ • 商品ページ •
検索 • カート • マイページ • お気に入り • 商品レビュー etc. 在庫 商品 価格 注文 顧客 キャン ペーン レビュー 請求 出荷 問い合 わせ 倉庫 カート 納期
https://www.monotaro.com/ 2020.2.13 ECサイトを取り巻く状況 34 セキュリティ • Chrome SameSite • Apple
iTP2.1 システム関係 • 既存コードのリファクタリング • APIエンドポイント・リクエスト数増加 • リアルタイムマーケティング施策増 ファーストパーティーの データ活用 スケーラビリティとアジ リティの両立
https://www.monotaro.com/ 2020.2.13 モノタロウのマーケティング 35 様々なデータを活用して • SEM/リスティング広告 • 業種別リコメンド •
検索結果最適化 • キャンペーン・特価 • プッシュマーケティング などをリアルタイムに最適化していきたい Life Time Value
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
https://www.monotaro.com/ 2020.2.13 データ活用に適したアーキテクチャへ 37 • 非対称なマルチクラウド ◦ AWSにECサイト ◦ GCPにデータ基盤
◦ オンプレに基幹システム • ReadModel、更新頻度のばらつき • DBスキーマ • フロントエンド • マーケターのダッシュボード
https://www.monotaro.com/ 2020.2.13 REST API化は進んだが問題も出てきた • エンドポイント増加 • コール数増加/依存の複雑化 • ロジックの属人化
• DBのスケーラビリティ • 検索インデックスへの負荷集中 • データモデルのばらつき データ活用に適したアーキテクチャへ 38
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
https://www.monotaro.com/ 2020.2.13 データ活用に適したアーキテクチャへ 40 例: リコメンド、パーソナライズ • リリースが容易でスケーラブルなAPI • 常に最新のデータが反映されたストレージ
• 持続的な成長を支えるインフラ -> システムとデータ基盤が共通のアーキテクチャに
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
https://www.monotaro.com/ 2020.2.13 巨大バッチのEvent-Driven化 42 購入、出荷などUXに関わるイベントでビューを逐次更新し たい。マーケティングもリアルタイム化したい。 購入 逐次処理 出荷 マイページ
逐次処理
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ってみましょう)
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
https://www.monotaro.com/ 2020.2.13 リアーキテクチャリングと技術スタック 45 データ基盤のスタック ECサイトのスタック 漸進的にギャップを埋める -> リアーキテクチャリング Cloud Dataflow
Cloud Pub/Sub Kubernetes Engine Cloud Bigtable
https://www.monotaro.com/ 2020.2.13 運用のデータドリブン化 46 変化への柔軟な対応 • ユーザー数・売上の伸び • 新たな施策やトラフィックの変動 •
A/Bテスト・カナリアリリース -> SLO/SLIによるデータドリブンな運用 BigQuery Kubernetes Engine
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
https://www.monotaro.com/ 2020.2.13 • データ基盤とシステムを(アーキテクチャ的に)統合 • リファクタリング+リアーキテクチャリング ◦ データ活用のためのMicroservice化 ◦ データの価値を高めるイベントドリブン化
• 変化に強いデータドリブンなインフラ ◦ SRE 48 まとめ
https://www.monotaro.com/ 2020.2.13 配布資料の2次元バーコードからアンケート フォームへご回答よろしくお願いします ブースにてマスク等粗品を お渡しします 49 アンケートご回答よろしくお願いします
エンジニア募集中 本社(尼崎)/東京オフィス(赤坂)
https://www.monotaro.com/ 2020.2.13 急成長するモノタロウと一緒に働いてみませんか? • 自社開発・自社運用で、全社/全業務でITを駆使する テクノロジー企業です • 本社は関西ですが、東京も開発の中心になるべく幅広い 職種を募集しています ◦
ITエンジニア、データサイエンティスト、デジタル マーケター、プロダクトマネージャー • 詳しくは https://recruit.monotaro.com/ 51
https://www.monotaro.com/ 52