全1694文字

 ZOZOは衣料品EC(電子商取引)モール「ZOZOTOWN(ゾゾタウン)」のシステム刷新を進めている。IT子会社のZOZOテクノロジーズが中心となって2017年から、オンプレミス(自社所有)環境からクラウドへ移すと同時に、マイクロサービスアーキテクチャーに移行しているところだ。ZOZOテクノロジーズの瀬尾直利EC基盤本部本部長 兼 CTO委員会委員長は「アプリケーションの開発スピードを向上させるため」とマイクロサービスに踏み切った理由を説明する。

 従来システムはアプリケーションを構成するソフト部品同士が互いに密接に依存するモノリスな構造だったため、テスト工程で別機能のソフト部品の改修を待つ時間が発生したり、リリースのタイミングを調整したりする手間が発生していた。そこで2019年に、利用者が気に入った商品を登録しておく「お気に入り」、ログインを制御する「ID認証」といった機能単位でマイクロサービスに移行することを決定した。

 移行方式として「ストラングラーパターン」を採用した。これは従来システムの全てを一気にマイクロサービスにするのではなく、従来システムの中から機能単位でマイクロサービスへ段階的に移行する方法だ。

 新システムの「基盤の根幹」としてAPIゲートウエイを設置した。スマートフォンやパソコンなどクライアントからのリクエストをAPIゲートウエイが受け付け、該当するマイクロサービスに振り分ける。マイクロサービス間の通信については、オープンソースソフト(OSS)の「Istio」を用いて、互いに直接接続する「サービスメッシュ」という形態をとった。

ZOZOTOWNの新システムの構成(水色の部分)
ZOZOTOWNの新システムの構成(水色の部分)
(出所:ZOZOテクノロジーズ)
[画像のクリックで拡大表示]

 ZOZOテクノロジーズは開発当初、クラウドベンダーが提供するAPIゲートウエイのマネージドサービスを採用する予定だった。しかしZOZOTOWNのIT基盤として必要な機能を検討した結果、自社で開発することにしたという。

 カギになった機能の1つが「社内ID基盤との連携」である。ZOZOTOWNはユーザー管理のため、独自のID基盤を運用している。APIゲートウエイに認証トークンが到着すると、バックエンドで稼働するID基盤と連携してユーザー情報などを取得し、別のマイクロサービスに渡す仕組みが必要だった。この機能はマネージドサービスでは実現しづらかったという。

 独自のAPIゲートウエイの開発にはプログラミング言語のGoを用いた。こうして2020年4月に完成したのが「ZOZO API Gateway」と呼ぶAPIゲートウエイだ。