Slide 1

Slide 1 text

現在のZOZOTOWN物流システムの概要紹介 株式会社ZOZO
 基幹システム本部 物流開発部
 ブロック長 武信 一平
 Copyright © ZOZO, Inc. 1

Slide 2

Slide 2 text

© ZOZO, Inc. 株式会社ZOZO
 基幹システム本部 物流開発部 入荷開発ブロック
 ブロック長 武信 一平
 2008年3月入社。ZOZOBASEで撮影セクションの業務を担当していました。 2011年に社内公募制度を利用して未経験からシステムの業務にチャレンジ。 それからずっと物流システムの開発・運用に携わっています。 2019年からはマネジメントにも従事しています。
 2

Slide 3

Slide 3 text

© ZOZO, Inc. 3 アジェンダ ・ZOZO基幹システムの概要 ・発送システム紹介 ・発送システムの課題点 ・開発フローやリリースについて ・まとめ

Slide 4

Slide 4 text

© ZOZO, Inc. 4 ZOZO基幹システムの概要

Slide 5

Slide 5 text

© ZOZO, Inc. 5 ZOZO基幹システムは、バックオフィスとバックオフィス2というClassic ASPのWebアプリケーションで構成されます。 バックオフィスはPC用Webアプリケーション、 バックオフィス2はZOZOBASE内のハンディ端末用のWebアプリケーションで、どちらも基幹DBと通信します。 ● バックオフィス ○ ZOZOTOWNへの出品やセールの設定などを管理するためのEC管理機能 ○ ブランド様への月次の精算書発行やZOZO経理部へ売上や手数料などを連携するため の経理機能 ○ お客様対応のためのカスタマーサポート機能 ○ ブランド様から送られてきた商品を保管するための入荷機能 ○ お客様へと商品を発送するための発送機能 ○ etc ● バックオフィス2 ○ 入荷業務のひとつである棚入れのための機能 ○ 発送業務のひとつであるピッキングのための機能 ○ etc ZOZO基幹システムの概要

Slide 6

Slide 6 text

© ZOZO, Inc. 6 発送システム紹介

Slide 7

Slide 7 text

© ZOZO, Inc. 7 発送機能を提供するシステムを「発送システム」と呼びます。 具体的に発送機能とは「ZOZOBASE内の商品をピッキングし、注文通りに梱包してお客様宛てに発送する」機能を指します。 また、ZOZO基幹システムが提供する機能のうち、発送機能を除いたその他の機能をまとめて基幹機能と呼びます。 下図は「発送システム」を含めた現状のZOZO基幹システムの全体を簡易的に表現したものです。 発送システム紹介 画像引用元:https://techblog.zozo.com/entry/replacing-shipping-system-supporting-zozobase

Slide 8

Slide 8 text

© ZOZO, Inc. バックオフィスサーバー バックオフィス2サーバー バッチサーバー ④発送準備 ③注文確定 ⑨発送完了通知 ⑧出荷終了 ⑥マテハン連携 ②注文確定準備 基幹DB 発送内容確定 以降、基本的に注文内 容の変更不可 推奨資材判定 バッチ切り 発送の優先度や様々 な条件に基づいて、 注文を一定数の固ま りにしていく ピッキングデータ作 成 ピッキング 伝票印刷 発送進捗確認 発送実績確認 etc 荷合わせ、仕分 け、梱包に必要な 情報をデータ連携 マテハン側から仕 分けの実績データ ももらっている 発送 発送済みになった 注文を検知して、 注文ステータスを 発送済みに変更す る 発送済みになった 注文を検知して、お 客様に発送メールも しくはLINEで通知 ①注文 注文確定用データ作 成 発送方法判定 発送拠点判定 おまとめ処理 ノベルティ付与 マテハン(物流設備) 機械の力を使って、 荷合わせ・仕分け等を行う 梱包 お客様 ⑦発送作業 その1 ⑤伝票ファイル作成 帳票ツールを利用 して発送用の伝票 ファイルを作成す る。 作成したファイル をバックオフィス サーバーに配置 8 発送システム紹介 ⑦発送作業 その2 ⑩荷物到着

Slide 9

Slide 9 text

© ZOZO, Inc. 9 発送システムの課題点

Slide 10

Slide 10 text

© ZOZO, Inc. 10 ①システム障害リスクの増大 発送システムはバックオフィス・バックオフィス2という巨大でモノリシックなアプリケーションの一部です。 アーキテクチャ上、様々な機能と密結合しています。 そのため、DB障害やWebサーバーの障害など、発送システムとは直接関係がなくとも、 基幹機能を提供するシステム起因の障害に巻き込まれる可能性を否定できません。 発送システムの課題点 画像引用元:https://techblog.zozo.com/entry/replacing-shipping-system-supporting-zozobase

Slide 11

Slide 11 text

© ZOZO, Inc. 11 ◆発送システムにおける障害リスク ・注文確定関連の障害   発送優先度が高い注文に対してZOZOBASEでの作業の走り出しが遅れてしまう  最悪、お客様の希望通りの日時に荷物をお届け出来なくなってしまう ・出荷終了処理、発送完了通知の遅延  注文の発送状況について問い合わせに繋がる可能性が増える ・マテハン(物流設備)へのデータ連携の遅延 機械を動かしての作業が止まってしまう為、 ZOZOBASEの生産性に大きく影響を与えてしまう可能性がある ・伝票データ作成の遅延 ZOZOBASEでの伝票印刷処理のパフォーマンス低下(作業中の待ち時間増) 発送システムの課題点

Slide 12

Slide 12 text

© ZOZO, Inc. 12 ◆モノリスながら障害リスクを少しでも抑える為に行っている事 ・発送機能とそれ以外の基幹機能でIISのアプリケーションプールを分けてプロセスを分散する ・重要なバッチ処理は複数サーバーを利用して並列で実行する  ‐サーバーの負荷分散と処理時間の短縮 ・バッチ処理の停止や処理遅延にすぐ気付けるよう、アラートの仕組みを実装  ‐異常停止時や処理遅延が発生した際にシステム担当者と監視会社に通知 ・バックオフィス・バックオフィス2のエラー発生状況を可視化して監視  ‐エラーが急増した場合、システム担当者に通知 ・基幹DBの稼働状況を可視化して監視 発送システムの課題点

Slide 13

Slide 13 text

© ZOZO, Inc. 13 ②ビジネスロジックの複雑化に伴う 機能追加の労力の増大 発送システムの課題点 画像引用元:https://techblog.zozo.com/entry/replacing-shipping-system-supporting-zozobase 発送システムが含まれるバックオフィスとバックオフィス2は、トランザクションスクリプトで実装されています。 同様のロジックが複数のユースケースに書かれている状況です。 新たな機能を追加する際には、既存機能への影響調査あはgrepコマンドと目視で行われており、 これが業務時間の多くを占めてしまっている現状があります。

Slide 14

Slide 14 text

© ZOZO, Inc. 14 発送システムのリプレイスを行いこの2つの課題を解決していく! 発送システムの課題点 ・システム障害リスクの増大 ・ビジネスロジックの複雑化に伴う 機能追加の労力の増大

Slide 15

Slide 15 text

© ZOZO, Inc. 15 開発フローやリリースについて

Slide 16

Slide 16 text

© ZOZO, Inc. 16 ◆開発案件起案フロー ・ZOZOBASE依頼の開発  隔週の会議体で新規依頼案件の確認や担当決めを行う。  案件の優先度を加味して対応スケジュールを決め進めていく。 ・エンジニア発信の開発  システムの安定化や効率化に繋がる施策を、  自分達で提案して開発していく。   ・バグの修正  ZOZOBASEからの問い合わせ等で発覚。  温度感次第では即時対応を進める。 開発フローやリリースについて

Slide 17

Slide 17 text

© ZOZO, Inc. 17 ◆開発フロー ウォーターフォールモデルを採用しています。 1)起案 2)要件確認 (必要に応じてチーム内で要件確認&修正方針を決定) 3)開発担当者が実装 4)テスト前コードレビュー依頼 5)レビュー指摘をコードに反映 6)テスト実施 7)リリース前コードレビュー依頼 8)レビュー指摘をコードに反映 9)リリース担当者がリリースを行う ※ソース管理にはGitHubを利用 開発フローやリリースについて

Slide 18

Slide 18 text

© ZOZO, Inc. 18 ◆リリースフロー ・リリースファイルの作成  Gitのコマンドを利用して自動で作成しています。  その後、リリースファイルを既定のディレクトリに手動配置しています。  以前は自動生成せずに、開発者のローカルPC上で手作業でリリースファイルを作成していました・・・ ・リリース作業  自社で作成したリリース用のツールを利用しています。  画面上のボタンを手動で押してリリース作業を行っています。  全体的にかなりアナログな作業となっています・・・ 開発フローやリリースについて

Slide 19

Slide 19 text

© ZOZO, Inc. 19 まとめ

Slide 20

Slide 20 text

© ZOZO, Inc. 20 ZOZOの基幹システムは、 これまでZOZOBASEの新しい試みや要望、コスト削減の施策にスピーディーに コミットする為、継ぎ足しも止む無しとして機能追加を行ってきました。 それはZOZOの成長を支えていく事に繋がりましたが、基幹システム自体は巨 大なモノリスになってしまいました。 システム障害のリスクや、機能追加のコストが増えている実情を考えると、 マイクロサービス化を進めていきこれらの課題を解決していく事が必要だと 考えています。 まとめ

Slide 21

Slide 21 text

No content