全2431文字
PR

 年間1000万人超が買い物をする衣料品EC(電子商取引)モール「ZOZOTOWN(ゾゾタウン)」。運営元のZOZOは現在、同社初となるZOZOTOWNのシステム刷新を5年越しで進めている。オンプレミス環境で2004年に構築したシステムをつくり替え、処理能力の引き上げと合わせて、アプリケーションの開発効率を向上させる狙いがある。

 「開発とビジネス部門を密に連携する『BizDevOps』という方針の下、ユーザーに対して本質的な価値を素早く提供できるようにしたい」。プロジェクトを率いる瀬尾直利技術本部本部長兼VPoEはシステム刷新の背景をこう語る。

ストアドプロシージャーをJavaに書き換えるも性能出ず

 システム刷新は現在も続いており、目指す姿までの進捗率は50%程度という。これまでの取り組みを振り返ると大きく2つのフェーズに分かれる。第1期に当たる2017年から2019年にかけては、オンプレミス環境のシステムの一部をクラウドに移行。2020年から2021年の第2期では、クラウド上でマイクロサービスアーキテクチャーに基づくアプリ開発を進めた。

ZOZOTOWN刷新の経緯
ZOZOTOWN刷新の経緯
(画像:ZOZO)
[画像のクリックで拡大表示]

 オンプレミス環境にある大本のシステムは、アプリケーションサーバーとデータベース(DB)サーバーから成る。DBは米Microsoft(マイクロソフト)のRDBMS(リレーショナルデータベース管理システム)である「Microsoft SQL Server」だ。

 同社システムの特徴は業務ロジックの多くを、DB上で一連の処理を登録して実行する「ストアドプロシージャー」で実装した点にある。「DBサーバーをパワーアップすることでシステムの性能向上が図れる」。瀬尾本部長兼VPoEがこう話すように、ZOZOTOWNが稼働した2004年当時、こうしたシステムアーキテクチャーを採用するケースは珍しくなかった。

 しかし結果的に、アプリケーションサーバーではなくDBサーバーのリソースでロジック(ストアド)を実行するというこのアーキテクチャーの性能限界が見えてきた。「DBサーバーのスケールアップでしのいできたが性能の伸びが頭打ちになってきたため、クラウド化でスケーラビリティーを担保する」(瀬尾本部長兼VPoE)という決断を下したわけだ。

 2017年にマイクロソフトのクラウド「Microsoft Azure」を採用し、コンテナの利用環境を整えた。そのうえで、2020年から参照系のアプリをターゲットに、 ストアドプロシージャーをJavaに書き換える「ストアド剥がし」のプロジェクトを開始した。Azure上のDBもSQL Serverである。

 オンプレミス環境からAzureへの移行作業はこうなる。オンプレミス環境のSQL Server内にあるストアドプロシージャー化されたアプリをJavaに書き換えて、Azure上のコンテナに配置。必要に応じてデータを、オンプレミス環境のSQL ServerからAzure上のSQL Serverへ移行する。

 書き換えによってAzure上のSQL Serverにストアドプロシージャーはなくなったため、オンプレミス環境のSQL Serverに比べると処理負荷は下がったはずだ。だが、「ストアドプロシージャーを剥がしてもなお(Azure上の)DBの負荷が高く、Azure上では本番リリースに至らなかった」(同)。瀬尾本部長兼VPoEが担当する以前の話であり、当時の原因は判然としない。

 2019年10月にはAzureに加えて米Amazon Web Services (アマゾン・ウェブ・サービス)のクラウド「Amazon Web Services(AWS)」の併用を開始。2020年3月にはAWSに一本化し、その上で初の本番リリースに成功した。