連載
» 2019年09月04日 05時00分 公開

特集:百花繚乱。令和のクラウド移行(14):クラウドも人の子。止まることが前提――ZOZOTOWNが開設15年目に歩み出したクラウドネイティブへの旅路 (1/2)

多数の事例取材から企業ごとのクラウド移行プロジェクトの特色、移行の普遍的なポイントを抽出する本特集「百花繚乱。令和のクラウド移行」。ZOZOTOWNの事例では、マイクロサービス化とマルチクラウド化のポイントを、クラウドベンダーからの提案とともにお届けする。

[柴田克己,@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

ZOZOテクノロジーズ Chief ZOZOTOWN Architect 岡大勝氏

 ファッション通販サイトとして年間売り上げ1000億円を超える「ZOZOTOWN」。ZOZOTOWNでは現在、2004年のサイト開設以来、増強しながら使い続けてきたシステムのアーキテクチャを「クラウドネイティブ」なものへと移行することに取り組んでいるという。2019年7月22日、23日に行われた「Cloud Native Days Tokyo 2019」では、ZOZOテクノロジーズのChief ZOZOTOWN Architectを務める、岡大勝氏が「ZOZOTOWNのCloud Native Journey」と題して、同社がクラウドネイティブへ踏み出した理由や今後のビジョンを語った。

 セッションは、前半と後半から構成されており、前半では岡氏が「旅立ち編」と題して、ZOZOTOWNが新たなアーキテクチャへの移行を決断した背景や、今後のビジョンについて説明。後半では、日本マイクロソフトのクラウドソリューションアーキテクトである真壁徹氏が「アンサーソング編」と題し、近年の「クラウドネイティブ」にまつわる動向や、Microsoft Azureで提供されている機能、Microsoftの取り組みなどを紹介した。

2004年以来、アーキテクチャを変えずに規模を拡大してきたが、もう不可能

 岡氏がチーフアーキテクトを務めるZOZOTOWNのオープンは2004年。当時のショップ数は27店ほどだったが、2019年3月末現在で、ショップ数は1200店以上、取り扱いブランド数は7000以上と大幅に増加している。常時、73万点以上のアイテムを取り扱い、1日当たり平均で3200点以上の新着アイテムが追加されているという。

 ZOZOTOWNでは、オープンした2004年以来、アーキテクチャの大きな変更は行わずに、規模を拡大してきた。現在の状態を岡氏は「出世し尽くした出世魚」のようだと表現した。今後の成長率を鑑みて「これまでと同じアーキテクチャによる規模拡大は不可能」と判断したことが、クラウドネイティブな仕組みへの移行を検討した最大のきっかけだった。

ZOZOTOWNはアーキテクチャを変えずに規模を拡大してきた

 「次に目指すべきは、密結合による巨大で強靱(きょうじん)なシステムではなく、疎結合による自律分散化が可能なシステムだ」

 岡氏は「出世魚」の例えになぞらえて、疎結合のシステムは、いわば「スイミー」のようなものだとする。『スイミー―ちいさなかしこいさかなのはなし』(好学社)は、レオ・レオニ氏による絵本作品。主人公は小さな魚のスイミー。大きな魚に食べられることを恐れて、岩陰に隠れている仲間に「みんなで集まって、大きな魚のふりをして泳ぐ」ことを提案し、集団で大海を自由に泳ぐことができるようになるというストーリーだ。「個々の小さなサービスが集まって、全体で大きなシステムとして動き、その一部のみが停止しても全体への影響へはほとんどない」のが、目指すべきZOZOTOWNの姿だという。

 新たなアーキテクチャを目指すに当たっての設計方針は「スケーラブルマイクロサービス」と「マルチクラウド×インタークラウド」だ。

「スケーラブルなモノリス」を「Strangler Application Pattern」でクラウド移行

 岡氏は、これまでのZOZOTOWNのアーキテクチャを「スケーラブルなモノリス」と表現した。これまで、オンプレミス上で巨大な1つのデータベースシステムを背後に置き、データベースの増強とフロント部分の並列化で、規模拡張に対応してきた。現在では、並列化されたフロントの規模は数百のオーダーに達しているという。

2004年のZOZOTOWNのアーキテクチャ
2017年のZOZOTOWNのアーキテクチャ

 岡氏は、密結合の「モノリス」なシステムにも、新規のサービス開発に向いていて、性能の向上や運用がシンプルに行えるなどのメリットがあるとする一方で、巨大化してしまったZOZOTOWNでは「運用作業や障害の影響範囲が大きくなる」「コード量の増加で複雑さが増大する」「システム全体が特定の技術に依存していることによるリスクが無視できない」といった課題が出てきていたことに言及。

 その上で、システムの「マイクロサービス化」を目指す理由として「新しいビジネスチャレンジの基盤とする」「多様な人材と働き方に適応する」「多様化する技術の活用促進」「システム全体の可用性向上」などを挙げた。

 同社では、既に段階的にシステムのマイクロサービス化を進めている。その作業に当たっては、「Strangler Application Pattern」と呼ばれるアプローチを採っている。

 「Strangler Application Pattern」は、分散配備されているフロント部分において、レガシーのロジックを呼び出すコードの前に「ストラングラーファサード」と呼ばれるプロキシ的な機能を入れ、段階的に呼び出し先を新しいコードに変更していく手法。最終的には、新しいシステムで古いシステムの機能を全て置き換え、古いシステムを完全に停止できるようになる。このアプローチについては、『Monolith to Microservices』(O'Reilly Media刊、Sam Newman著、2019年9月現在日本未発売)で詳細が解説されているという。

Strangler Application Pattern

 同社では、これまでストアドプロシージャとしてDB側で実行していた一部の処理をマイクロサービスに移植し、徐々にストラングラーファサード経由でアクセスできる状況へと変えている。今後、残されている処理のマイクロサービス化と呼び出し先の切り替えを順次進めていく計画だ。

マイクロサービス化の進捗(しんちょく) - 4分の1
マイクロサービス化の進捗 - 4分の2
マイクロサービス化の進捗 - 4分の3
マイクロサービス化の進捗 - 4分の4

 ZOZOTOWNでは、マイクロサービス化したサービス群を、配備先の垣根を越えて疎結合できるようにし、同時に処理の自動化を通じて運用負荷を削減して、頻繁な変更作業などにも柔軟に対応できる仕組み作りを目指す方針だ。これに当たっては、サービスの配備先がスケーラブルであることと、サーバレスであることが大前提になるという。

スケーラブルアプリケーションとデータストア

デプロイ先はインターネット――ZOZOTOWNの「No Boundary」戦略

 「マルチクラウド×インタークラウド」は、サービスの配備先についての方針である。複数ベンダーのパブリッククラウドを利用し、かつパブリッククラウドだけではなく、オンプレミスを加えた環境間の相互連携を実現したいというものである。

 「ゆくゆくは、ZOZOTOWNのデプロイ先は(特定のクラウドではなく)インターネットといえる状況を作っていきたい。一部で何かがあっても、必要なサービスは常にインターネットのどこかで動き続け、システム全体は問題なく動いている状態が理想。インタークラウドでのフェイルオーバーができるような仕組みも模索していきたい」(岡氏)

ZOZOTOWNの「No Boundary」戦略

 「マルチクラウド」については、当初、社内でも議論が白熱したというが、岡氏は「革新と安定のバランス」と「進化の多様性への投資」の観点から、マルチクラウド化を推進している。

 「パブリッククラウドの価値は、それぞれのベンダーが全力でその機能を革新し続けている部分にあり、その革新の価値は、『進化のない安定性』よりも高い。そのための不具合やトラブルによる停止は織り込んで、マルチクラウド化によるリスクヘッジが必須だと考えている。クラウドも人の子。止まることを前提としている」(岡氏)

 ZOZOTOWNでは、マルチクラウドの活用に当たって「同じ設計思想を、環境に合わせて個別に実装する」という方針を立てている。コード、オペレーション、実行環境を個別にしつつ、自動化によって配備や運用のコストを下げていく。現在、同社ではAmazon Web Services、およびMicrosoft Azure上での実装作業を進めており、Google Cloud PlatformについてはPoC(概念実証)の段階にあるとのことだった。

マルチクラウドの進捗
       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。