【イベントレポート】ZOZO物流システム今昔物語〜モノリスからマイクロサービスへ〜を開催しました!

イベントレポート:ZOZO物流システム今昔物語〜モノリスからマイクロサービスへ〜

はじめに

こんにちは。ZOZO DevRelブロックの@wirohaです。5/25にオンラインイベント「ZOZO物流システム今昔物語〜モノリスからマイクロサービスへ〜」を開催しました。ZOZOの開発において「物流システムリプレイス」にフォーカスした技術選定や設計手法、設計時の考え方などを紹介するイベントです。

登壇内容まとめ

弊社から次の3名が登壇しました。

  • ZOZOTOWN物流システム20年史(基幹システム本部 物流開発部 / 矢野 敏明)
  • 現在のZOZOTOWN物流システムの概要紹介(基幹システム本部 物流開発部 / 武信 一平)
  • モノリスからの脱却に向けた物流システムリプレイスの概要紹介(基幹システム本部 物流開発部 / 矢部 佑磨)

当日の発表はYouTubeのアーカイブで視聴可能です。

www.youtube.com

ZOZOTOWN物流システム20年史

矢野より物流拠点・サービス・システムの歴史を紹介

speakerdeck.com

矢野からはZOZOTOWNの物流システムの歴史について発表しました。2004年のサービス開始時からと長い間継続しているシステムです。VBScriptを使用しており当時は適していた技術であるものの、現在では技術者が不足しているといった課題が出てきています。物流拠点「ZOZOBASE」と開発側双方の課題を解決するため、発送業務からリプレイスを開始することになりました。「大事なのは温故知新」ということで「今のシステムへのリスペクト」「新しいことに取り組む姿勢」は大事なメッセージだと感じました。

社内公募制度についてもご紹介し、質問では興味を持っていただいていました。

質疑応答の補足

時間内に回答しきれなかったご質問について、こちらで回答いたします。

質問1. 発送業務がデータの分離をしやすいと分かった経緯をもう少し教えて頂けないでしょうか?既存システムを知っている有識者の知識のみで実施できたのでしょうか?それともデータモデリングなどを実施したのでしょうか?
質問2. 切り出しやすい。ってどう導きだしたのでしょうか?

回答:2件まとめて回答します。今回はほぼ既存システムを知っている有識者の意見を参考にしました。また、データに付いて分離という言葉を使っていますが意味合いとしてはシステム間が疎結合になっているという意味で分離という言葉を使っています。発送作業の元データは基幹サービスから持ってくるので基幹と発送サービスで同じデータを持っていることになりますがそこにひも付きはありませんので「分離」と表現しています。

分離の観点としまして、発送作業(ピッキング、梱包)において次の観点で話を進めました。

  • 在庫管理が必要であれば分離は困難
  • 在庫管理が必要なければ分離できる可能性あり

今回は発送サービスをあくまで発送作業を行うツールというような形で捉えました。例えば、発送サービス側で商品バーコードと格納ロケーションのみ知っていればピッキング作業は可能です。在庫管理は発送作業完了データを基幹システムに流し、基幹側で非同期に行う仕組みとしました。

上記の理由から次の判断をしました。

  • 発送作業では在庫管理の必要はない
  • 複雑なひも付きのない単体データで発送作業が可能

これらの判断から発送に必要なデータのみを分離しました。

現在のZOZOTOWN物流システムの概要紹介

武信より発送システムの概要を紹介

speakerdeck.com

武信からは発送システムの概要を紹介しました。図解によりさまざまな手順を経ていることがわかります。システム障害リスクの増大、機能追加の労力の増大という課題を解決するためリプレイスをすることになりました。開発案件の起案フローや開発フロー、リリースフローもご紹介しました。非常に多くのご質問をいただき、物流へ興味を持つ方がこんなにもいるのかと嬉しく思います。

質疑応答の補足

質問:アジャイル開発を実施していない理由はありますか?
回答:ZOZOTOWNでは当初からウォーターフォール開発の手法を採用していたのでそれを継続しているというのが一番大きいです。基幹システムという特性上、速く開発する事よりも正確な処理をする事を重視しているという側面もあります。軽微な修正等はアジャイル開発に近い手法で進める事もあります。

モノリスからの脱却に向けた物流システムリプレイスの概要紹介

矢部よりリプレイスの概要を紹介

speakerdeck.com

矢部からはリプレイスの概要・工程について発表しました。超えてきた障壁には技術習得、人員確保、現行システム開発案件との並列化などがあげられました。リプレイスにあたり、独自の物流システムを持っており膨大なビジネスドメインがあるため、ドメイン駆動設計を導入しました。導入により既存よりも大幅に読みやすいコードにできメリットを感じているそうです。リプレイス後のインフラ構成はさまざまな組み合わせで要件やコストを満たすか比較されていました。現段階では正解かわからない点もあるとのことで、今後また聞ける機会を設けられればと思います。

質疑応答の補足

質問:分析で出てきたメタデータと実装のメタデータはどのように管理されていますか?
回答:分析で出てきたメタデータはホワイトボードツールを使っていましたので付箋などで表していました。実装のメタデータは基本的にコードで表現しますが、できないものはコメントまたはGitHubリポジトリのWikiに書くなどして使い分けています。

最後に

今回は実際の物がかかわる物流という特殊なドメインにフォーカスしたイベントを開催しました。非常に多くのご質問・ご参加をいただきありがとうございました。質疑応答も含んでおりますので、ぜひYouTubeのアーカイブをご覧ください!

ZOZOでは一緒にサービスを作り上げてくれる仲間を募集中です。ご興味のある方は以下のリンクからぜひご応募ください。

corp.zozo.com

カテゴリー