SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

【デブサミ2020】セッションレポート (AD)

GCPで飛躍するデータ活用とリアーキテクチャリング! モノタロウの急成長を支えるECシステムの舞台裏【デブサミ2020】

【13-B-2】モノタロウがGCPで挑戦するデータドリブン・ECプラットフォーム〜持続的成長の舞台裏

  • このエントリーをはてなブックマークに追加

情報のリアルタイム反映のため、よりスケーラブルなスパイラル型のシステムへ

 普川氏からバトンを受け取った藤本氏は、冒頭、モノタロウECサイトの月間セッションは数千万、注文数は数十万で年々右肩上がりに増加しているとし、それに加えてECサイト構築・運用の複雑さを述べた。

株式会社MonotaRO データマーケティング部門 EC基盤グループ 藤本洋一氏
株式会社MonotaRO データマーケティング部門 EC基盤グループ 藤本洋一氏

 ECサイトには、その構成要素として、トップページ、商品ページ、検索、カート、マイページ、お気に入り、レビューなどがある。「商品ページにある商品に関する情報は商品部門が、在庫は倉庫の管理システムが、キャンペーンはマーケティング部門によって作られます。マイページの情報はユーザーが入力します。このようにさまざまな情報の流れや更新サイクルがあり、これらが集約されているのがECサイトなのです」と藤本氏。

 また藤本氏は、ECサイトを取り巻く状況として、ユーザー保護のためのChrome SameSiteやApple ITP2.1といった新たなセキュリティ対策への対応、システム面では既存コードのリファクタリングの必要性や、APIエンドポイント・リクエスト数増加、リアルタイムマーケティング施策の増加など、スケーラビリティと可用性の両立が求められていることを説明した。

 モノタロウでは、こうした背景において顧客のLife Time Valueを高めるため、データを活用したSEM・リスティング広告、業種別のレコメンド、検索結果最適化、キャンペーン・特価などをリアルタイムに最適化していきたいニーズを持っている。

 従来のモノタロウのシステムは、MySQLのデータベースを中心としたスター型のシステムだ。AWSにあるECシステムやWebAPI、倉庫や商品・顧客情報と連携するオンプレミスの基幹システム、メールやカタログ発送を行うマーケティングのシステム、GCPデータ基盤などがそれぞれ参照・連携している。

従来のシステムはMySQLを中心としたスター型
従来のシステムはMySQLを中心としたスター型

 非対称のマルチクラウド環境であり、各データの更新頻度にばらつきもある。たとえば、取り扱いのない商品を知るためには異なるソースを集める必要があり、ところどころで情報のズレが生じてしまうのだ。

 また、APIの活用が進んでいるものの、エンドポイントが100近くまで増えており、コール数も増加・依存度の複雑化もしていて、ロジックの属人化も問題になっている。さまざまな情報を集約して行う消費データも、検索インデックスに負荷をかけないため、リアルタイムに更新できない課題もある。

 スター型のシステムは、中心がハブになり同じものを参照するイメージだが、スケーラビリティを考えると適していない場合もあるのだという。「現在目指しているシステムは、基幹システムやECアプリケーションなどのサブシステム群があり、GCPのReal-Time Data Pipelineを通じてDataPlatformを経由して整理され、Applicationsに提供・処理されたあとにまたサブシステム群に反映される、スパイラル(螺旋)型のようなモデルです。そもそもECサイトのユーザーは、サイトにアクセスして商品を探して購入して、納品日をマイページで確認する、そしてまたアクセスして購入する……といったスパイラルな動きをします。これをシステムに反映したのです」と藤本氏は説明した。

目指すシステムは、データが循環していくようなスパイラル型
目指すシステムは、データが循環していくようなスパイラル型

API群のマイクロサービス化、CDCデータパイプライン、運用のデータドリブン化が着々と進行中

 データ活用に適したシステムのアーキテクチャについて、商品のレコメンドや画面のパーソナライズ化を例に考えると、APIはリリースが容易でスケーラブルであること、最新のデータが反映されていること、また持続的な成長を支えるインフラであること、すなわちシステムとデータ基盤が共通のアーキテクチャが望ましい。

 そこで、従来同じデータベースを参照していた既存API群は、データ活用とスケーリングのためマイクロサービス化し、それぞれ個別のデータベースを参照する仕組みに変更する。これまで定期的なバッチ処理で更新するため、リアルタイムに反映でききなかった情報もイベント発生のたびに逐次更新できるようにする。たとえば購入後に同じ商品ページを訪れると「○月○日に購入しました」といった追加の情報を表示したり、おすすめ商品の内容を即時変更したりといった形だ。

 システムへのCDC活用も進められている。これはデータ基盤同様、MySQLのbinlogのイベントを使い、BigTableに蓄積しておき、マイクロサービスからアクセスできるようにするもの。「BigQueryはデータウェアハウス的な大規模な分散DBでSQLが使えるものの、APIのバックエンドには向いていません。BigTbleはSQLではなくKVS(Key-Value Store)のため、パフォーマンスがなかなか良いです」と藤本氏。

 また、CDCによるデータパイプラインの構想についても説明があった。たとえば、商品の在庫の情報が更新されると、在庫情報やブランド、カテゴリを付加してすぐに活用できる状態にしてKVSに入れ、常に最新のデータをアプリケーションに反映できるのだ。同社では、これらの構想を実現するために漸進的にリアーキテクチャリングを進めているという。

常に最新のデータをアプリケーションに反映できる
常に最新のデータをアプリケーションに反映できる

 データのリアルタイム性に加え、ユーザー数・売り上げの伸びなどの変化に対して柔軟かつ安全に対応できる、運用のデータドリブン化も重要な要素である。藤本氏は「たとえば、レコメンドなど新しいアルゴリズムを試したいとき、そのアプリケーションに問題が生じたとしても、安全に動作するようなインフラにしたいです。従来から行ってきましたが、今後もさまざまなツールを使ってスケーリングする仕組みや、そのための指標づくりをしていきます。運用面も対応することで、新しいシステムの全体像が実現すると感じています」と今後の展望を語った。

お問い合わせ

 株式会社MonotaRO

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
【デブサミ2020】セッションレポート 連載記事一覧

もっと読む

この記事の著者

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/12010 2020/03/16 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング