Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
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
Bet AI Day 2026丨AIを「使う」から、AIが「働く」へ ― LayerXが進める「組織AI」の社会実装
layerx
PRO
2
2.1k
はじめてのDatabricks:技術者向けワークショップ / beginner-workshop
databricksjapan
PRO
0
140
推論の観測、できていますか? 〜 Google Cloud Gemini Enterprise Agent Platformで 3つの Gemini モデルを実測して踏んだ、評価の罠 〜
shukob
PRO
0
140
Bet AI Day 2026丨バクラク Autopilot、業務システムの再設計
layerx
PRO
2
1.1k
AI-DLCって実際どう? 〜聞きたいこと全部聞いてみる〜
news_it_enj
0
220
Instana&Bob トラブルシュートハンズオン
mayamasaki68
0
110
Backstageでつくるセルフサービスな社内開発基盤
kikunosuke75
1
230
[RSJ26] Building a VLA Model Based on Self-Distilled Classification
keio_smilab
PRO
0
190
深夜のクラウド懺悔室 1:29:300 or 1:0:0
kazzpapa3
0
120
プロダクト思考 × 基盤思考を AIで実現する Compound Engineering
tkc66buzz
1
240
APIセキュリティを組織で実現するには~注力する点と設計・実装に入れたい対策~
riiimparm
3
930
Bet AI Day 2026丨Agentは、「金融」という巨大産業の何を変えられるのか
layerx
PRO
0
700
Featured
See All Featured
Docker and Python
trallard
47
4.2k
The World Runs on Bad Software
bkeepers
PRO
72
12k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Making Projects Easy
brettharned
120
6.7k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
490
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
390
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
800
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
270
エンジニアに許された特別な時間の終わり
watany
108
250k
Thoughts on Productivity
jonyablonski
76
5.4k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
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