monotaro_devsumi2020winter

 monotaro_devsumi2020winter

Ede974a0e9b6a962d210e1fd7836e7d6?s=128

Youichi Fujimoto

February 13, 2020
Tweet

Transcript

  1. https://www.monotaro.com/ 1

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

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

    チャリング • まとめ
  4. https://www.monotaro.com/ 2020.2.13 4

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

  6. https://www.monotaro.com/ 2020.2.13 6 間接資材購買 – モノタロウ以前 人的コスト 時間がかかる 商品がほしい 複数・多種な

    営業に連絡 見積 価格交渉 発注  納期確定 納品 いくら?? いつ届くの!?
  7. https://www.monotaro.com/ 2020.2.13 7 間接資材購買 – モノタロウ以後 商品がほしい 翌日届く すぐ届く 価格交渉なし

    購買に関わるコストを大きく下げる
  8. https://www.monotaro.com/ 2020.2.13 企業における間接資材の調達プロセスをテクノロジーと データで圧倒的に簡単にする モノタロウの提供している価値 One Price One Stop Easy

    to Buy 価格透明性がある 必要なもの全部ある すぐ見つかる、買える 8
  9. https://www.monotaro.com/ 2020.2.13 9 20%以上成長を10年継続 ・データマーケティングが成長を牽引 ・システムは常にキャパシティとの戦いでもある 2019年 1,200億円を突破

  10. https://www.monotaro.com/ 2020.2.13 あらゆる顧客接点をデータを活用して最適化していく モノタロウのデータマーケティング 10 SEO/SEM プッシュ型マーケティング 検索 リコメンド 業種別最適化

    パーソナライズ 特価・クーポン施策 誰に 何を いつ どのくらい
  11. https://www.monotaro.com/ 2020.2.13 11 例1:ユーザの業種で検索の表 示順を最適化する 検索最適化のほんの一例 例2:商品のマスタにない専門ワード、 業界用語も検索可能にする 医療系ユーザ 製造業ユーザ

    ・データ、アルゴリズムによって検索の顧客体験の最適化を行う ・しかし商品数は1800万SKUあるため、手動でのチューニングは不可能 ・それをエンジニアリングによって自動化・仕組化していくことが重要
  12. https://www.monotaro.com/ 2020.2.13 AI無人店舗 12 エンジニアリングドリブンなカルチャー 自動倉庫 ピッキング

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

  14. https://www.monotaro.com/ 2020.2.13 旧データ基盤(〜2017)の問題点 • データ保存場所が分散 → データ移動が大変 • オンプレデータ基盤のサーバスペックが足りない •

    分析に必要なデータが揃っていない データが集約されていて、スケールできて、使いやすく、 管理しやすく、コストも安いデータ基盤がほしい! 14
  15. https://www.monotaro.com/ 2020.2.13 15 扱えるデータ量 作成されたレポート数 SQL 業務利用者人数 10× 10× 5×

    ~ 100 テーブル 1000 テーブル~ ~ 30 レポート 300 レポート~ ~ 10 人 50 人~ ( IT エンジニア以外 ) データ基盤導入の成果
  16. https://www.monotaro.com/ 2020.2.13 1. 全ての必要なデータを1箇所に集約 2. CDC(Change Data Capture)による安定し たデータ連携 3.

    業務担当者(非エンジニア)によるSQLデータ 分析の浸透 16 データ基盤が活用されたポイント
  17. https://www.monotaro.com/ 2020.2.13 その1 あらゆるデータを1箇所に集めた 17 データ基盤が活用されたポイント

  18. 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
  19. https://www.monotaro.com/ 2020.2.13 BigQueryの利用 • フルマネージド • シンプル • 圧倒的スケーラビリティ •

    GSuite 連携 (アカウントの準備とか不要) • Google Analytics 連携 (Google Marketing Platform) 19 BigQuery
  20. https://www.monotaro.com/ 2020.2.13 その2 CDC(Change Data Capture)による安定した データ連携 20 データ基盤が活用されたポイント

  21. https://www.monotaro.com/ 2020.2.13 CDCによるデータ連携 • データの変更情報のみを取得、処理を行うCDC (Change Data Caputure)を行い、擬似的にSlaveDB作成 • マスターのDBに負荷をかけず、安定してデータを連携で

    きた • メインとなる基幹のDB(MySQL)でBinLog Connectorを利 用して実現している 21
  22. 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の仕組み
  23. https://www.monotaro.com/ 2020.2.13 • データ基盤に出来るだけリアルタイムに近いデータ利用の ニーズがあった。
 • 従来の方法(mysqldump や select 結果を同期)

    だと物理削除 に対応できないケースがある
 • 従来の方法だと差分更新できないケースがある
 ◦ 更新時間の値が信用できない
 ◦ 更新されたレコードを把握するためのクエリが負荷が高い
 23 BinLog Connectorを使った理由
  24. https://www.monotaro.com/ 2020.2.13 その3 業務担当者(非エンジニア)によるSQLデータ分析 24 データ活用が社内で浸透した3つのポイント

  25. https://www.monotaro.com/ 2020.2.13 • もともと業務担当者にニーズがあった • 分析依頼を行なっているとスピードが遅い • 業務担当者が直接クエリを流せれば的確な分析 ができる •

    BiqQueryの場合、同時実行クエリの増加によ る遅延がおきづらいという利点もあった 25 なぜ非エンジニアにDB基盤を解放したか
  26. https://www.monotaro.com/ 2020.2.13 • 定期的なSQL/BigQuery/DataStudio 研修 • もともとデータ分析を行う社風 • SlackのHelpチャネルでQAを色々な 人が行う文化

    26 どうやってSQLを組織的に学んだのか
  27. https://www.monotaro.com/ 2020.2.13 データ活用現状 27 ❏ マーケター ❏ マーチャンダイザー ❏ カスタマーサポート

    ❏ 物流 ❏ セールス (全ての部門で利用) レポート作 成 分析(SQL) データソースと して利用 業務アプリ ケーション 参照 or ダウンロード ❏全社的に利用 ❏全社的に利用 (ユーザ数は全社員の約 30%)
  28. https://www.monotaro.com/ 2020.2.13 IAM管理 • あらゆるデータを基盤上に持ってきたが秘匿データは適切な人にだ け見るようにする →マスキングとAuthorized View コスト管理  • あらゆる人にアドホックなクエリを許可している

     →ハイコストなクエリをリアルタイムで検知 • 全体の利用状況は把握できるようにしたい  →GCP Censusで利用状況を可視化/チェック 28 データ基盤運用での管理ポイント
  29. https://www.monotaro.com/ 2020.2.13 29 さらにECアプリケーションでの活用 EC App DWH  BigQuery Application(API) GKE

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

    30 ECアプリケーション刷新の必要性の高まり
  31. https://www.monotaro.com/ 2020.2.13 https://www.monotaro.com/ これからのECサイトの成長を支える システムのリアーキテクチャリング 31

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

  33. https://www.monotaro.com/ 2020.2.13 モノタロウ ECサイトの構成要素 33 • トップページ • 商品ページ •

    検索 • カート • マイページ • お気に入り • 商品レビュー etc. 在庫 商品 価格 注文 顧客 キャン ペーン レビュー 請求 出荷 問い合 わせ 倉庫 カート 納期
  34. https://www.monotaro.com/ 2020.2.13 ECサイトを取り巻く状況 34 セキュリティ • Chrome SameSite • Apple

    iTP2.1 システム関係 • 既存コードのリファクタリング • APIエンドポイント・リクエスト数増加 • リアルタイムマーケティング施策増 ファーストパーティーの データ活用 スケーラビリティとアジ リティの両立
  35. https://www.monotaro.com/ 2020.2.13 モノタロウのマーケティング 35 様々なデータを活用して • SEM/リスティング広告 • 業種別リコメンド •

    検索結果最適化 • キャンペーン・特価 • プッシュマーケティング などをリアルタイムに最適化していきたい Life Time Value
  36. 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
  37. https://www.monotaro.com/ 2020.2.13 データ活用に適したアーキテクチャへ 37 • 非対称なマルチクラウド ◦ AWSにECサイト ◦ GCPにデータ基盤

    ◦ オンプレに基幹システム • ReadModel、更新頻度のばらつき • DBスキーマ • フロントエンド • マーケターのダッシュボード
  38. https://www.monotaro.com/ 2020.2.13 REST API化は進んだが問題も出てきた • エンドポイント増加 • コール数増加/依存の複雑化 • ロジックの属人化

    • DBのスケーラビリティ • 検索インデックスへの負荷集中 • データモデルのばらつき データ活用に適したアーキテクチャへ 38
  39. 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
  40. https://www.monotaro.com/ 2020.2.13 データ活用に適したアーキテクチャへ 40 例: リコメンド、パーソナライズ • リリースが容易でスケーラブルなAPI • 常に最新のデータが反映されたストレージ

    • 持続的な成長を支えるインフラ -> システムとデータ基盤が共通のアーキテクチャに
  41. 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
  42. https://www.monotaro.com/ 2020.2.13 巨大バッチのEvent-Driven化 42 購入、出荷などUXに関わるイベントでビューを逐次更新し たい。マーケティングもリアルタイム化したい。 購入 逐次処理 出荷 マイページ

    逐次処理
  43. 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ってみましょう)
  44. 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
  45. https://www.monotaro.com/ 2020.2.13 リアーキテクチャリングと技術スタック 45 データ基盤のスタック      ECサイトのスタック 漸進的にギャップを埋める -> リアーキテクチャリング Cloud Dataflow

    Cloud Pub/Sub Kubernetes Engine Cloud Bigtable
  46. https://www.monotaro.com/ 2020.2.13 運用のデータドリブン化 46 変化への柔軟な対応 • ユーザー数・売上の伸び • 新たな施策やトラフィックの変動 •

    A/Bテスト・カナリアリリース -> SLO/SLIによるデータドリブンな運用 BigQuery Kubernetes Engine
  47. 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
  48. https://www.monotaro.com/ 2020.2.13 • データ基盤とシステムを(アーキテクチャ的に)統合 • リファクタリング+リアーキテクチャリング ◦ データ活用のためのMicroservice化 ◦ データの価値を高めるイベントドリブン化

    • 変化に強いデータドリブンなインフラ ◦ SRE 48 まとめ
  49. https://www.monotaro.com/ 2020.2.13 配布資料の2次元バーコードからアンケート フォームへご回答よろしくお願いします ブースにてマスク等粗品を お渡しします 49 アンケートご回答よろしくお願いします

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

  51. https://www.monotaro.com/ 2020.2.13 急成長するモノタロウと一緒に働いてみませんか? • 自社開発・自社運用で、全社/全業務でITを駆使する テクノロジー企業です • 本社は関西ですが、東京も開発の中心になるべく幅広い 職種を募集しています ◦

    ITエンジニア、データサイエンティスト、デジタル マーケター、プロダクトマネージャー • 詳しくは https://recruit.monotaro.com/ 51
  52. https://www.monotaro.com/ 52