Boost」など、さまざまなカンファレンスを企画・運営しています。BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。情報のリアルタイム反映のため、よりスケーラブルなスパイラル型のシステムへ普川氏からバトンを受け取った藤本氏は、冒頭、モノタロウECサイトの月間セッションは数千万、注文数は数十万で年々右肩上がりに増加しているとし、それに加えてECサイト構築・運用の複雑さを述べた。藤本洋一氏ECサイトには、その構成要素として、トップページ、商品ページ、検索、カート、マイページ、お気に入り、レビューなどがある。「商品ページにある商品に関する情報は商品部門が、在庫は倉庫の管理システムが、キャンペーンはマーケティング部門によって作られます。マイページの情報はユーザーが入力します。このようにさまざまな情報の流れや更新サイクルがあり、これらが集約されているのがECサイトなのです」と藤本氏。ITP2.1といった新たなセキュリティ対策への対応、システム面では既存コードのリファクタリングの必要性や、APIエンドポイント・リクエスト数増加、リアルタイムマーケティング施策の増加など、スケーラビリティと可用性の両立が求められていることを説明した。キャンペーン・特価などをリアルタイムに最適化していきたいニーズを持っている。従来のモノタロウのシステムは、MySQLのデータベースを中心としたスター型のシステムだ。AWSにあるECシステムやWebAPI、倉庫や商品・顧客情報と連携するオンプレミスの基幹システム、メールやカタログ発送を行うマーケティングのシステム、GCPデータ基盤などがそれぞれ参照・連携している。非対称のマルチクラウド環境であり、各データの更新頻度にばらつきもある。取り扱いのない商品を知るためには異なるソースを集める必要があり、ところどころで情報のズレが生じてしまうのだ。APIの活用が進んでいるものの、エンドポイントが100近くまで増えており、コール数も増加・依存度の複雑化もしていて、ロジックの属人化も問題になっている。さまざまな情報を集約して行う消費データも、検索インデックスに負荷をかけないため、リアルタイムに更新できない課題もある。スター型のシステムは、中心がハブになり同じものを参照するイメージだが、スケーラビリティを考えると適していない場合もあるのだという。Pipelineを通じてDataPlatformを経由して整理され、Applicationsに提供・処理されたあとにまたサブシステム群に反映される、スパイラル(螺旋)型のようなモデルです。そもそもECサイトのユーザーは、サイトにアクセスして商品を探して購入して、納品日をマイページで確認する、そしてまたアクセスして購入する......といったスパイラルな動きをします。これをシステムに反映したのです」と藤本氏は説明した。目指すシステムは、データが循環していくようなスパイラル型API群のマイクロサービス化、CDCデータパイプライン、運用のデータドリブン化が着々と進行中データ活用に適したシステムのアーキテクチャについて、商品のレコメンドや画面のパーソナライズ化を例に考えると、APIはリリースが容易でスケーラブルであること、最新のデータが反映されていること、また持続的な成長を支えるインフラであること、すなわちシステムとデータ基盤が共通のアーキテクチャが望ましい。そこで、従来同じデータベースを参照していた既存API群は、データ活用とスケーリングのためマイクロサービス化し、それぞれ個別のデータベースを参照する仕組みに変更する。これまで定期的なバッチ処理で更新するため、リアルタイムに反映でききなかった情報もイベント発生のたびに逐次更新できるようにする。購入後に同じ商品ページを訪れると「○月○日に購入しました」といった追加の情報を表示したり、おすすめ商品の内容を即時変更したりといった形だ。システムへのCDC活用も進められている。これはデータ基盤同様、MySQLのbinlogのイベントを使い、BigTableに蓄積しておき、マイクロサービスからアクセスできるようにするもの。「BigQueryはデータウェアハウス的な大規模な分散DBでSQLが使えるものの、APIのバックエンドには向いていません。Store)のため、パフォーマンスがなかなか良いです」と藤本氏。CDCによるデータパイプラインの構想についても説明があった。商品の在庫の情報が更新されると、在庫情報やブランド、カテゴリを付加してすぐに活用できる状態にしてKVSに入れ、常に最新のデータをアプリケーションに反映できるのだ。同社では、これらの構想を実現するために漸進的にリアーキテクチャリングを進めているという。常に最新のデータをアプリケーションに反映できるデータのリアルタイム性に加え、ユーザー数・売り上げの伸びなどの変化に対して柔軟かつ安全に対応できる、運用のデータドリブン化も重要な要素である。藤本氏は「たとえば、レコメンドなど新しいアルゴリズムを試したいとき、そのアプリケーションに問題が生じたとしても、安全に動作するようなインフラにしたいです。従来から行ってきましたが、今後もさまざまなツールを使ってスケーリングする仕組みや、そのための指標づくりをしていきます。運用面も対応することで、新しいシステムの全体像が実現すると感じています」と今後の展望を語った。「ITコンサルタント」というお仕事の醍醐味ややりがいは一体どこにあるのか?【デブサミ202...百貨店がアジャイルで靴売り場を変えた【デブサミ2020】もっと読むこの記事の著者CodeZine編集部(コードジンヘンシュウブ)CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。プラットフォームチームの意義と実践のポイント1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。プラットフォームチームの意義と実践のポイント1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。プラットフォームチームの意義と実践のポイント1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。NEW新着記事一覧を見るイベント今後の予定を見るCodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。イラストの無断転載を禁じます。記載されているロゴ、システム名、製品名は各社及び商標権者の登録商標あるいは商標です。