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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
「エンジニア進化論」2028年の開発完全自動化、エンジニアはどう進化するか
cyberagentdevelopers
PRO
6
5k
Android の公式 Skill / Android skills
yanzm
0
140
失敗を経て、Harness Engineering で 大切にしたいことを考える / Learning from Failure: What Matters in Harness Engineering
bitkey
PRO
1
350
入門!AWS Blocks
ysuzuki
1
110
プロダクト開発から業務改善コンサルまで。事業全体へ「染み出す」ことで広がるエンジニアの可能性
ham0215
0
120
データサイエンスを価値につなげるプロジェクト設計 〜 DS一年目が現場で得た気づき 〜
ysd113
1
230
Oracle AI Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
6
2k
SONiC Scale-Up Working Group から探る Scale-UpやUltraEthernet機能の実装方法
ebiken
PRO
2
250
AIソロプレナー時代に2ヶ月で20人増員した事業創造会社の開発組織の話
miyatakoji
0
640
RAG を使わないという選択肢
tatsutaka
1
220
人材育成分科会.pdf
_awache
2
170
Bucharest Tech Week 2026 - Reinventing testing practices in the AI era
edeandrea
PRO
1
150
Featured
See All Featured
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
410
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
290
Building Applications with DynamoDB
mza
96
7.1k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
170
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Paper Plane
katiecoart
PRO
1
51k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
140
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
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