Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ZOZOTOWNトップページの裏側 / Back side of the ZOZOTOWN t...
Search
TakahashiKazutaro
July 29, 2021
Technology
5.9k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ZOZOTOWNトップページの裏側 / Back side of the ZOZOTOWN top page
TakahashiKazutaro
July 29, 2021
More Decks by TakahashiKazutaro
See All by TakahashiKazutaro
replace of cart system on ZOZOTOWN
takahashikazutaro
0
2.3k
Other Decks in Technology
See All in Technology
AI時代だからこそ推したい!Gitコマンド再入門
munakata
0
150
あなたの知らないAmazon VPC Route Server/Amazon VPC Route Server you don't know about
masakiokuda
2
230
メルペイ 会計システム概要と歴史
mewuto
0
190
Execution in the Kingdom of Agents: Reflections on Abstraction and Complexity
bcantrill
0
860
分析AIエージェントを育てる、動く環境を育てる
codatum
0
120
Deep Data Security 機能解説
oracle4engineer
PRO
2
710
FinTech 1-2 : Overview of FinTech
ks91
PRO
0
150
ハードウェアコンペでもAI駆動開発が進んでいる話
iotengineer22
0
230
子育てエンジニアの可処分時間が減っても成長を諦めない戦い方
sudoakiy
1
1.2k
Claude Code本は、どのように執筆チームで書かれたか
oikon48
0
210
[2026 Oracle Technical Deep Dive] AI時代のデータベース基盤をどう選ぶ? Exadata Database Serviceの選択肢と使い分け (2026年9月17日開催)
oracle4engineer
PRO
0
230
使いこなすために知っておきたい Azure SRE Agent アンチパターン
torumakabe
2
400
Featured
See All Featured
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
340
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
350
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
3
4.3k
Typedesign – Prime Four
hannesfritz
42
3.2k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
260
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
320
Building Applications with DynamoDB
mza
96
7.2k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.7k
The Pragmatic Product Professional
lauravandoore
37
7.5k
Transcript
ZOZOTOWNトップページの裏側 ZOZO Tech Meetup 〜マイクロサービス化に取り組む、16年目のZOZOTOWN〜 株式会社ZOZOテクノロジーズ EC基盤本部/ECプラットフォーム部 カート決済チーム 高橋 和太郎
Copyright © ZOZO Technologies, Inc.
© ZOZO Technologies, Inc. 株式会社ZOZOテクノロジーズ EC基盤本部/ECプラットフォーム部 カート決済チーム 高橋 和太郎 2016年10月にスタートトゥデイ工務店(現ZOZOテクノロジー
ズ)に中途入社。2019年よりZOZOTOWNリプレイスプロジェ クトに従事。趣味は猫と遊ぶこと。 2
© ZOZO Technologies, Inc. https://zozo.jp/ • 日本最大級のファッション通販サイト • 1,400以上のショップ、8,200以上のブランドの取り扱い(ともに2021年3月 末時点)
• 常時83万点以上の商品アイテム数と毎日平均2,900点以上の新着 商品 を掲載 • コスメ専門モール「ZOZOCOSME」や靴の専門モール 「ZOZOSHOES」、ラグジュアリー&デザイナーズゾーン 「ZOZOVILLA」を展開 • 即日配送サービス • ギフトラッピングサービス • ツケ払い など 3
© ZOZO Technologies, Inc. アジェンダ • ZOZOTOWNトップページの裏側を支えるAPI • 構成 •
処理の流れ • まとめ 4
© ZOZO Technologies, Inc. 5 ZOZOTOWNトップページ の裏側を支えるAPI
© ZOZO Technologies, Inc. 6 2021/3/18にZOZOTOWNはリニューアルしました。
© ZOZO Technologies, Inc. 7 今回のZOZOTOWNのリニューアルを機に実装されたAPI ZOZO Aggregation
API
© ZOZO Technologies, Inc. ZOZO Aggregation APIを実装した目的 8 • 各マイクロサービスへの通信をまとめる
• パーソナライズを見据えてモジュールの出し分けをする • コンテンツの運用負荷の削減する • 表示モジュールのA/Bテストを可能にする
© ZOZO Technologies, Inc. モジュールとは 9 • ZOZOTOWNのトップページに表示されて一 定の目的を持った商品情報の塊のこと
• リニューアル前から現在と同様に情報を表 示する単位でデバイスごとに存在していた
© ZOZO Technologies, Inc. 10 構成
© ZOZO Technologies, Inc. リニューアル前のZOZOTOWNのトップページの構成 11 • Web、アプリで必要に応じて各APIやオンプレ DB(ストアド)へアクセスしていた
• 今後、マイクロサービスが進むにつれ、アクセ ス対象となるAPIが増え、そのAPIの要件に よっては、クライアントサイドで改修が必要に なる
© ZOZO Technologies, Inc. リニューアル後のZOZOTOWNのトップページの構成 12 • トップページのすべてのアクセスはAPI Gatewayを通してAggregation APIへ
一本化 された • 今後、マイクロサービスが増えた場合でもクラ イアントから通信を行うのではなく、 Aggregation APIから通信を行う
© ZOZO Technologies, Inc. リニューアルの過程で苦労したこと(開発体制 -before-) 13
© ZOZO Technologies, Inc. リニューアルの過程で苦労したこと(開発体制 -after-) 14
© ZOZO Technologies, Inc. Aggregation APIを中心とした構成(開発当初) 15
© ZOZO Technologies, Inc. Aggregation APIを中心とした構成(負荷試験実施時) 16
© ZOZO Technologies, Inc. 負荷試験の障害の原因 17
© ZOZO Technologies, Inc. Aggregation APIを中心とした構成(キャッシュ導入後) 18
© ZOZO Technologies, Inc. キャッシュスタンピード対策について 19 ZOZOTOWNリニューアルで 実 施
した Cache Stampede対策 https://techblog.zozo.com/entry/zozotown-cache-stampede
© ZOZO Technologies, Inc. 20 処理の流れ
© ZOZO Technologies, Inc. Aggregation APIの処理の流れ(全体) 21
© ZOZO Technologies, Inc. Aggregation APIの処理の流れ(モジュール管理情報取得) 22
© ZOZO Technologies, Inc. Aggregation APIの処理の流れ(モジュール管理情報取得) 23 ZOZOTOWNのTOPページに必要な情報を取得 • モジュールのタイトル
• モジュール内の情報取得条件
© ZOZO Technologies, Inc. Aggregation APIの処理の流れ(各モジュール情報取得) 24
© ZOZO Technologies, Inc. Aggregation APIの処理の流れ(各モジュール情報取得) 25
© ZOZO Technologies, Inc. 26 全体レスポンス { "result": [ {
モジュールAレスポンス }, { モジュールBレスポンス }, { モジュールCレスポンス }, { モジュールDレスポンス } ] } Aggregation APIのレスポンス
© ZOZO Technologies, Inc. 27 全体レスポンス { "result": [ {
モジュールAレスポンス }, { モジュールBレスポンス }, { モジュールCレスポンス }, { モジュールDレスポンス } ] } Aggregation APIのレスポンス { "common_information": { "title": "モジュールAタイトル", "sub_title": "モジュールAサブタイトル", "module_type": "モジュールA", : }, "module_information": [ { "item_id": 1234567, "item_name": "サンプルA", "price": 5500 }, { : }, ] } モジュールの共通情報 モジュール情報
© ZOZO Technologies, Inc. 28 Aggregation APIのダウン = ZOZOTOWNのトップページが見れない
© ZOZO Technologies, Inc. Aggregation APIの処理の流れ(障害発生時) 29
© ZOZO Technologies, Inc. Aggregation APIの処理の流れ(障害発生時) 30
© ZOZO Technologies, Inc. Aggregation APIの処理の流れ(障害発生時) 31 • Aggregation API内部に保持している固定のjsonを読む
© ZOZO Technologies, Inc. Aggregation APIの処理の流れ(障害発生時) 32
© ZOZO Technologies, Inc. 33 まとめ
© ZOZO Technologies, Inc. • BFFとしてはクライアントと1対1とすべき ◦ Web : Web用API、App:App用API
• 多くのチームとのコミュニケーションが取れた 34 Aggregation APIを構築して得られたこと
© ZOZO Technologies, Inc. • ZOZO Aggregation APIを実装 • 各マイクロサービスとの通信をまとめる役割
• 一部のマイクロサービスとの通信でエラーでも大丈夫 35 まとめ
None