「資材調達ネットワークを変革する」をミッションに、フルスタックのECカンパニーとして事業展開するMonotaROが、クラウドネイティブ戦略を進めている。
7月13日、14日に開催された「TECH+ フォーラム クラウドインフラ Days 2023 Jul. ビジネスを支えるクラウドの本質」に、MonotaRO CSE部門 CTO-Officeグループの藤本洋一氏が登壇。クラウドネイティブ化を中心に、内製システムのモダナイゼーションについて話した。
「TECH+ フォーラム クラウドインフラ Days 2023 Jul. 『ビジネスを支えるクラウドの本質』」その他の講演レポートはこちら
適材適所でクラウドを活用
MonotaROは、自ら間接資材の在庫を持ち、さまざまな商品を取り扱うECサイト「モノタロウ」を運営する企業だ。ECサイトはもちろん、コールセンター、物流、マーケティング、データサイエンスなども自社で開発・運用する「フルスタックのECカンパニー」だと藤本氏は説明する。
取り扱う商品点数は2000万点に及び、ユーザー数は800万人以上。売上高は2022年度に約2260億円を計上した。越境ECの運営に加え、子会社を通じてグローバルにも展開している。
では、MonotaROのシステムはどうなっているのか。同氏によると、ECサイトでの検索・購入、出荷倉庫での製品のピッキング、出荷配送の各工程に必要なシステムをそれぞれ内製し、連携しているという。
従来は全てのシステムをオンプレ環境で運用していたが、2017年にECサイトをAmazon Web Services(AWS)上に移行し、同時にデータ基盤をGoogle Cloud Platform (GCP)上に構築した。しかし、「受注や商品などのデータ連携が発生し、理想的とは言えない状況だった」と藤本氏は振り返る。その後、ビジネスの拡大によりAWS上にオーダーマネジメントシステム(OMS)、GCP上に商品情報・検索基盤を構築した。現在は、オンプレにある基幹システムを合わせ、3つの環境が共存していることになる。
モダナイズで取り組む5つのR
現在は、クラウド化からさらに一歩踏み込み、クラウドネイティブへの移行も進めている。「今後システムの高度化を進める上で、モノリシックな既存システムの制約がアジリティ低下の要因となっていた」(藤本氏)からだ。また、EOLへの対応、DBのバージョンアップなどの作業も定期的に生じることも相まって、ドメイン分割とマイクロサービス化によるクラウドネイティブ化へ向けた歩みを進めることにしたのだという。
MonotaROではこうしたクラウドネイティブ化も含め、以下の"5つのR"でモダナイズに取り組んでいる。
講演では、これらの5つのRの中から、リプラットフォーム、リファクタ、リビルドについて、具体的な取り組みが紹介された。
リプラットフォーム - 狙いはコンテナ化のメリットをいち早く享受すること
リプラットフォームは、アプリのコンテナ化、次にKubernetesの導入というステップで進めたという。アプリをコンテナ化することでOSはアプリチームに移管され、マネージドCI/CDやコンテナリポジトリが利用できるようになる。さらにKubernetesを導入することで、アプリ側が担うのはコンテナイメージとマニフェスト(YAML)の管理のみとなり、KubernetesのHorizontal Pod Autoscaling(HPA)などの活用が可能となった。
「(リプラットフォームは)コンテナ化のメリットをなるべく早く享受することが狙いでした」(藤本氏)
さらに、コンテナ化の過程でDockerファイルとビルドパイプラインを構築することで、VMホストに依存していた構築が、インフラストラクチャ・アズ・ア・コード(IaC)化され、再現性が高まり、環境依存の解消が進んだ。また、コンテナ化によって、DORA(4Keys)の活用やカナリアリリースの導入にもつながったという。
リファクタ - Twelve-Factor App化
リファクタは、「Twelve-Factor App ※」への対応を中心に進められた。これにより、状態の分離やConfigの外出し、クレデンシャル分離・管理、パスベースのルーティング、リリース手順見直し、ログ標準出力化などが実現できたそうだ。
※ Webアプリケーション開発のベストプラクティスを12の項目にまとめたもの。
リビルドではIaC、マネージドサービスを早期導入
リビルドは、商品情報の検索基盤領域で行われている。先述のように、同社は2000万点以上の商品を抱えており、顧客が探しているものがすぐに見つかることが顧客価値につながるからだ。
また、それまで用いていた全文検索システム「Apach Solr」がEOLを迎えるという事情もあった。そこで、分散型検索・分析エンジン「Elasticsearch」と商品データ取得用のキーバリューストア(KVS)の組み合わせに置き換えることを前提に、周辺システムを構築してストラングラーパターン手法で移行したという。新しい検索基盤には、GCPのDataflow、Cloud Spanner、Cloud Storageなどのマネージドサービスを活用。商品マスターデータは「BigQuery」と連携しており、表示用データを生成する部分でもBigQueryを利用している。
藤本氏はリビルドで学んだこととして、プロジェクトの開始時からIaCやサービスアカウントを活用すべきであること、マネージドサービスにもSLAがあるためエラーハンドリングは設計段階から考慮しておくべきであること、クラウドのトレーシングやメトリクスといったオブザーバビリティを最初から活用すると良いこと、早期に稼働させて継続的な負荷テストを行うことの重要性などを挙げた。
ドメイン駆動開発によりクラウドネイティブ組織へ
リビルドでクラウドネイティブ化したことにより、スケーラビリティや運用は改善したものの、移行期間やコスト面に課題が残ったと藤本氏は語る。そこで、ドメイン駆動開発の考え方を取り入れ、ドメインを分析し、疎結合なマイクロサービスの実現を目指すこととした。
具体的には、商品ドメイン、調達ドメイン、配送ドメインといったかたちで、業務レベルでの境界を見いだし、各ドメインチームがフロントエンドからバックエンドまでを担当する体制を整えた。ドメイン間はAPI、もしくはイベント駆動で疎結合性を確保した状態で統合される。
また、MonotaROでは、DBのクエリを分析して結果を可視化、ドメイン境界上にあるテーブルを特定していった。これと平行して、業務部門を交えたイベントストーミングも実施。外部のファシリテーションも利用して、網羅的な分析を行うことができたという。
“5つのR”を通じてコンテナの活用が進むと、「プラットフォームチームに期待される役割が見えてきた」(藤本氏)そうだ。同社では、クラウドベンダーとの連携を強め、通常のチケットベースのやり取りに加えて、定例会に参加してもらったり、導入検討中のサービスのハンズオンなどのワークショップを開催してもらったりしている。社内でもマイクロサービス化で必要になる技術を広める活動を行っているという。
最後に藤本氏は、“MonotaROのこれから”として、サプライチェーン高度化について話した。これは自社の在庫とサプライヤーの在庫をシステム上で連携し、自社で欠品している商品をサプライヤーの倉庫から直接顧客へ届けるという仕組みだ。欠品を防ぐだけでなく、商品の当日配送が可能になるという。同氏は「このようなチャレンジにおいても、これまでのクラウドネイティブ化の取り組みが活きてくる」と語り、講演を締めくくった。
「TECH+ フォーラム クラウドインフラ Days 2023 Jul. 『ビジネスを支えるクラウドの本質』」その他の講演レポートはこちら