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リプレイス2020
Search
Naotoshi Seo
November 05, 2020
Technology
39k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ZOZOTOWNリプレイス2020
Naotoshi Seo
November 05, 2020
More Decks by Naotoshi Seo
See All by Naotoshi Seo
Red Chainer and Cumo: Practical Deep Learning in Ruby at RubyKaigi 2019
sonots
1
4.8k
Introduction of Cumo, and Integration to Red Chainer
sonots
1
1.2k
Implementation of Cumo, a CUDA-aware version of Ruby/Numo
sonots
1
2.1k
Fast Numerical Computing and Deep Learning in Ruby with Cumo
sonots
0
10k
CuPy improvments around memory
sonots
3
1.8k
DeNA AIシステム部におけるクラウドを活用した機械学習基盤の構築
sonots
4
6.4k
Triglav - Data Driven Workflow Tool
sonots
1
4.3k
DeNA流データエンジニアリングの極意
sonots
17
13k
BigQuery Schema Migration #bq_sushi
sonots
2
6.2k
Other Decks in Technology
See All in Technology
連合学習と機密コンピューティング
lycorptech_jp
PRO
0
120
Oracle AI Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
6
1.5k
【Snowflake Summit 2026 Recap!!】Snowflake Summit Deep Dive: Security & Governance
civitaspo
1
220
AmazonRoute 53ではじめてのドメイン取得!HTTPS化までの道のりを整理してみた
usanchuu
3
140
ルールやカスタム機能、どう活かす?ハンズオンで体感するIBM Bobの出力コントロール
muehara
1
170
なぜ Platform Engineering の土台に Kubernetes を選ぶのか
r4ynode
2
650
フィジカル版Github Onshapeの紹介
shiba_8ro
0
260
機械学習を「社会実装」するということ 2026年夏版 / Social Implementation of Machine Learning June 2026 Version
moepy_stats
6
2.4k
Disciplined Vibes: Scaling AI-Assisted Engineering
sheharyar
0
150
Bedrock AgentCore RuntimeでAuth0 Changelog調査AIをアップグレードした話
t5u8a5a
1
160
マルチアカウント環境での コーディングエージェントを使った障害調査が大変なので AIエージェントにReadOnly権限を付与してみた / ReadOnly AI Agents for Multi-Account AWS Incident Response
yamaguchitk333
2
110
2026TECHFRESH畢業分享會 - Lightning Talk - 資料也要 CI/CD? 用 Airbyte 自動化資料同步
line_developers_tw
PRO
0
1.1k
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
247
13k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Making the Leap to Tech Lead
cromwellryan
135
9.9k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
310
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.7k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Transcript
ZOZOTOWNリプレイス2020 ZOZO Technologies Meetup〜ZOZOTOWNシステムリプレイスの裏側〜 2020/11/05 株式会社ZOZOテクノロジーズ SRE部 リーダー 瀬尾
直利 Copyright © ZOZO Technologies, Inc.
© ZOZO Technologies, Inc. 瀬尾 直利 (そのっつ) 株式会社ZOZOテクノロジーズ 2019年1月入社 SREスペシャリスト
CSIRT 兼 SRE部 ML-SRE 兼 SRE部 プラットフォームSREリーダー 兼 リプレイス戦略 Twitter/GitHub: @sonots CRuby、Fluentd コミッタ 2
© ZOZO Technologies, Inc. https://zozo.jp/ • 日本最大級のファッション通販サイト • 1,300以上のショップ、7,400以上のブランドの取り扱い(ともに2019年12 月末時点)
• 常時73万点以上の商品アイテム数と毎日平均3,200点以上の新着 商 品を掲載 • 即日配送サービス • ギフトラッピングサービス • ツケ払い など 3
© ZOZO Technologies, Inc. アジェンダ • ZOZOTOWNリプレイスのおさらい • 2020年度以降の新体制とアーキテクチャ •
2020年度以降の成果紹介
© ZOZO Technologies, Inc. ZOZOTOWNリプレイスのおさらい 5
© ZOZO Technologies, Inc. 6 2004年 ZOZOTOWN オープン
© ZOZO Technologies, Inc. 7 ZOZOTOWNはアーキテクチャを変えずに規模を拡大してきた
© ZOZO Technologies, Inc. IIS (Web) RO iOS Android ブラウザ
PC/SP リプレイス開始前: 〜2017年 ストアド ストアド ストアド 8 IIS (API) ロジックがDBに載ってい る(ストアド) 成功 • データの近くで処理を行うため高速(特に2005年 当時はネットワークが細い) • ロジックをDBに載せることでDRYにできる 課題 • ストアドプロシージャ(ストアド)をスケールさせづ らい • ストアドのテストが書きづらい • Classic ASP • Windows Server の構築自動化が難しい • 現実問題、ASPレイヤーで2重管理になっている ロジックは存在する
© ZOZO Technologies, Inc. 9 2017年4月
© ZOZO Technologies, Inc. 10 2017年当時のリプレイス計画
© ZOZO Technologies, Inc. Java API Read Only SQL ストアドをは
がしてAPIに 移設 第1フェーズ: 2017年〜2020年 参照系ロジックのストアド剥がし 11 IIS (Web) RO iOS Android ブラウザ PC/SP ストアド ストアド ストアド Read Only IIS (API) DBレプリ 課題 • ASPレイヤーのロジックがそのまま • 更新系のリプレイスが未計画 • オンプレIISが入り口のままであるためオ ンプレを卒業できない設計 • デプロイの順番待ち (モノリス) • ビッグバンアップグレード (モノリス) Read Only 成功 • ストアドロジックが減った • クラウドに移設したことでスケーラビリティ を手にいれた (ECサイトは参照リクエスト が圧倒的に多い) ZOZO DC クラウド
© ZOZO Technologies, Inc. 既存の課題解決と ZOZOTOWNリプレイスを加速させるため 新アーキテクチャと新体制 の計画をスタート 12 2020年1月
そのっつ参画
© ZOZO Technologies, Inc. 改めて目的を再確認。なぜリプレイスするのか ZOZOTOWNの成長のため スピード をあげる コスト をさげる
人材 をふやす これらを達成できる組織にする 13
© ZOZO Technologies, Inc. 2020年度、リプレイスプロジェクトで進めること まず、変更しやすくしたい。 1. ストアドはがし(継続) 2. マイクロサービスの立ち上げ
14
© ZOZO Technologies, Inc. 新フレームワーク ロジック (Web表示のみ) 商品 サービス RO
お気に入り サービス RW メンバー サービス RW ネイティブアプリはAPI 直呼び出し ブラウザ PC/SP iOS Android WebのUIに 新技術が使える ようになる それぞれのAPIが 独立したサービスに = マイクロサービス化 API Gateway ID認証 サービス RW 15 第2フェーズ: 目指す姿
© ZOZO Technologies, Inc. 商品 サービス RO お気に入り サービス RW
メンバー サービス RW API Gateway ID認証 サービス RW 16 IIS (Web) RO ブラウザ PC/SP ストアド ストアド ストアド IIS (API) ZOZO DC 第2フェーズ (2020年〜進行中) 切り替え方法 (ストラングラーパターン) iOS Android 切り替え 切り替え DBレプリ クラウド
© ZOZO Technologies, Inc. この1年でマイクロサービスの完成形テンプレートを作る 17
© ZOZO Technologies, Inc. 組織 18 「マイクロサービスは組織論である」
© ZOZO Technologies, Inc. アーキテクチャを反映した、開発しやすい組織体制に移行 新フレームワーク ロジック (Web表示のみ) ユーザー サービス
RO お気に入り サービス RW 商品 サービス RW API Gateway ID認証 サービス RW 19
© ZOZO Technologies, Inc. ECプラットフォーム部 / プラットフォームSREの設立 (4月) EC開発本部 ZOZOTOWN
フロントエンド バックエンド アプリ ZOZO 技術開発本部 ECプラットフォーム部 基幹 MSP USED CHINA SRE部 検索 マイグレーション API基盤 推薦基盤 サービス MLOps MA BtoB USED PF-SRE グロース EC開発本部と一緒にマイクロサービス化を進めていく 20
© ZOZO Technologies, Inc. ZOZOTOWNリプレイス2020上期の成果 21
© ZOZO Technologies, Inc. ZOZOTOWNリプレイス2020上期の成果 • ストアド剥がし (継続) • セッションオフロード
• 全面 Elasticsearch 化 • リアルタイムデータ基盤 • Azure 廃止 a.k.a. マルチクラウド廃止 • ID 認証基盤リプレイス • 全面 API Gateway 化 • ZOZOTOWN API ガイドライン策定
© ZOZO Technologies, Inc. セッションオフロード (進行中) 23 • セッション管理が Web
サーバオンメモリの Sticky セッションだった ◦ 課題: ロードバランシングさせづらい • 外部共有メモリを使うように ElastiCache (Redis) に移行
© ZOZO Technologies, Inc. • 検索を SQL Server から Elasticsearch
に全面的に置き換え • 合わせてパフォーマンスチューニングを実施 • 結果: ほぼ倍速、タイムアウトエラー件数も激減。インフラコストも削減 全面 Elasticsearch 化 24 https://techblog.zozo.com/entry/search-performance-improvement https://techblog.zozo.com/entry/migrating-zozotown-search-platform
© ZOZO Technologies, Inc. • SQL Server の変更差分をリアルタイムに BigQuery へ取り込む仕組み
• セール時の大量データ更新でも数分で BigQuery に取り込めるように リアルタイムデータ基盤 25 https://techblog.zozo.com/entry/real-time-data-linkage-infrastructure
© ZOZO Technologies, Inc. Azure 廃止 a.k.a. マルチクラウド廃止 26 なぜ辞めたのか
• インフラコスト削減 ◦ 片系が落ちても耐えられるように1.5~2倍程度のインフラコストをかけていた • アジリティ (事業スピード) 向上 ◦ アーキテクチャの複雑化によりアジリティが低下してビジネスチャンスを逃したことがあった • 信頼性向上 ◦ 理論上はマルチクラウドにより単一クラウドのSLAを超える信頼性確保が可能になる。しかし、実際は Azure と AWS 両方に詳しい必要があり難易度が高く信頼低下に影響があった • 更新系リプレイス開始 ◦ 更新系リプレイスにおいて今までのマルチクラウド設計では難があった
© ZOZO Technologies, Inc. 27 2020年3月 Azure 廃止 (7月)
© ZOZO Technologies, Inc. 28 全面 Gateway 経由化、ID基盤 (7月 /
11月) 内部切り替え (7月) 外部切り替え (11月) ID基盤リリース (11月) 下期
© ZOZO Technologies, Inc. ZOZOTOWN API ガイドライン 29 • マイクロサービス化推進に伴い統一ガイドラインが必要だった
• 各チーム Tech Lead を集めて激論をかわして策定
© ZOZO Technologies, Inc. • 新規構築したプラットフォーム環境において IaC, CI/CD を徹底 •
開発体験の向上 - レビュー後にマージすればデプロイできる 全面 Infrastructure as Code, CI/CD化 30 https://docs.google.com/presentation/d/1Ez4wURim60oG49KDZ0W25GEGfiEeUrG5-3Hw6fNbh2A/edit#slide=id.p1
© ZOZO Technologies, Inc. まとめ • この1年でマイクロサービス化のテンプレートを作る • 全社レベルで取り組んでいる •
リプレイスできたら成功、ではない ◦ プロダクトの成長のための土台づくり ◦ 開発・運用体験の向上、組織の成熟、人材育成 • まだまだチャレンジングな課題が転がっている
None