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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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 に書かせたその API、 “信頼” できますか?
nagix
0
120
Issue 駆動でスペシャリストの意図を届ける、AI 実装のアクセシビリティ向上
thkt
0
120
2026-09-11 【Snowflake World Tour Tokyo 2026】Snowflakeを起点に、AI Agentが自律稼働し続ける未来へ / Driving AI Agents with Snowflake
civitaspo
0
660
DEFCON34-Write-up_HYCu-MYCu
daikiokazaki
0
160
登壇の自信を奪う3匹のオバケ / 3 Ghosts That Rob You of Your Confidence in Public Speaking
pauli
9
980
Claude Codeを「使うほど育つ」AI秘書にするノウハウ
minorun365
PRO
31
26k
SREは、MCPとAutopilotをこう使え!
kazumax55
3
850
幾何アルゴリズムで なめらかなピン操作を / iOSDC Japan 2026 / smoothpin
kazumanagano
0
350
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
3
510
synctest時代のhttptest Go 1.27で変わるHTTPサーバテストの裏側 / go conference2026 synctest and httptest
budougumi0617
1
3k
2026_devsumi_ozono.pdf
o3
3
510
range over func 2年間の軌跡 Issue #56413 はGoのエコシステムをどう変えたか
ryujicre8ive
0
190
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
2.9k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
440
Are puppies a ranking factor?
jonoalderson
2
3.9k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Evolving SEO for Evolving Search Engines
ryanjones
0
290
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
500
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
450
Faster Mobile Websites
deanohume
310
32k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
540
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
46k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
280
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