Share
Embed
monotaro_devsumi2020winter
Youichi Fujimoto
February 13, 2020
Transcript
52 slides
-
https://www.monotaro.com/ 2020.2.13 6 間接資材購買 – モノタロウ以前 人的コスト 時間がかかる 商品がほしい 複数・多種な
営業に連絡 見積 価格交渉 発注 納期確定 納品 いくら?? いつ届くの!? -
https://www.monotaro.com/ 2020.2.13 企業における間接資材の調達プロセスをテクノロジーと データで圧倒的に簡単にする モノタロウの提供している価値 One Price One Stop Easy
to Buy 価格透明性がある 必要なもの全部ある すぐ見つかる、買える 8 -
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 旧データ基盤(〜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 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 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 • もともと業務担当者にニーズがあった • 分析依頼を行なっているとスピードが遅い • 業務担当者が直接クエリを流せれば的確な分析 ができる •
BiqQueryの場合、同時実行クエリの増加によ る遅延がおきづらいという利点もあった 25 なぜ非エンジニアにDB基盤を解放したか -
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サイトの構成要素 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 システムへの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 急成長するモノタロウと一緒に働いてみませんか? • 自社開発・自社運用で、全社/全業務でITを駆使する テクノロジー企業です • 本社は関西ですが、東京も開発の中心になるべく幅広い 職種を募集しています ◦
ITエンジニア、データサイエンティスト、デジタル マーケター、プロダクトマネージャー • 詳しくは https://recruit.monotaro.com/ 51