Slide 1

Slide 1 text

ZOZOTOWNリプレイス2020
 
 ZOZO Technologies Meetup〜ZOZOTOWNシステムリプレイスの裏側〜 2020/11/05
 株式会社ZOZOテクノロジーズ
 SRE部
 リーダー 瀬尾 直利
 Copyright © ZOZO Technologies, Inc.

Slide 2

Slide 2 text

© ZOZO Technologies, Inc. 瀬尾 直利 (そのっつ)
 株式会社ZOZOテクノロジーズ 2019年1月入社 SREスペシャリスト CSIRT 兼 SRE部 ML-SRE 兼 SRE部 プラットフォームSREリーダー 兼 リプレイス戦略 Twitter/GitHub: @sonots CRuby、Fluentd コミッタ 2

Slide 3

Slide 3 text

© ZOZO Technologies, Inc. https://zozo.jp/
 ● 日本最大級のファッション通販サイト
 ● 1,300以上のショップ、7,400以上のブランドの取り扱い(ともに2019年12 月末時点)
 ● 常時73万点以上の商品アイテム数と毎日平均3,200点以上の新着 商 品を掲載
 ● 即日配送サービス
 ● ギフトラッピングサービス
 ● ツケ払い など
 3

Slide 4

Slide 4 text

© ZOZO Technologies, Inc. アジェンダ ● ZOZOTOWNリプレイスのおさらい ● 2020年度以降の新体制とアーキテクチャ ● 2020年度以降の成果紹介

Slide 5

Slide 5 text

© ZOZO Technologies, Inc. ZOZOTOWNリプレイスのおさらい 5

Slide 6

Slide 6 text

© ZOZO Technologies, Inc. 6 2004年 ZOZOTOWN オープン

Slide 7

Slide 7 text

© ZOZO Technologies, Inc. 7 ZOZOTOWNはアーキテクチャを変えずに規模を拡大してきた

Slide 8

Slide 8 text

© ZOZO Technologies, Inc. IIS (Web) RO iOS Android ブラウザ PC/SP リプレイス開始前: 〜2017年 ストアド ストアド ストアド 8 IIS (API) ロジックがDBに載ってい る(ストアド) 成功 ● データの近くで処理を行うため高速(特に2005年 当時はネットワークが細い) ● ロジックをDBに載せることでDRYにできる 課題 ● ストアドプロシージャ(ストアド)をスケールさせづ らい ● ストアドのテストが書きづらい ● Classic ASP ● Windows Server の構築自動化が難しい ● 現実問題、ASPレイヤーで2重管理になっている ロジックは存在する

Slide 9

Slide 9 text

© ZOZO Technologies, Inc. 9 2017年4月

Slide 10

Slide 10 text

© ZOZO Technologies, Inc. 10 2017年当時のリプレイス計画

Slide 11

Slide 11 text

© 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 クラウド

Slide 12

Slide 12 text

© ZOZO Technologies, Inc. 既存の課題解決と ZOZOTOWNリプレイスを加速させるため 新アーキテクチャと新体制 の計画をスタート 12 2020年1月 そのっつ参画

Slide 13

Slide 13 text

© ZOZO Technologies, Inc. 改めて目的を再確認。なぜリプレイスするのか ZOZOTOWNの成長のため スピード をあげる コスト をさげる 人材 をふやす これらを達成できる組織にする 13

Slide 14

Slide 14 text

© ZOZO Technologies, Inc. 2020年度、リプレイスプロジェクトで進めること まず、変更しやすくしたい。 1. ストアドはがし(継続) 2. マイクロサービスの立ち上げ 14

Slide 15

Slide 15 text

© ZOZO Technologies, Inc. 新フレームワーク ロジック (Web表示のみ) 商品 サービス RO お気に入り サービス RW メンバー サービス RW ネイティブアプリはAPI 直呼び出し ブラウザ PC/SP iOS Android WebのUIに 新技術が使える ようになる それぞれのAPIが 独立したサービスに = マイクロサービス化 API Gateway ID認証 サービス RW 15 第2フェーズ: 目指す姿

Slide 16

Slide 16 text

© 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レプリ クラウド

Slide 17

Slide 17 text

© ZOZO Technologies, Inc. この1年でマイクロサービスの完成形テンプレートを作る 17

Slide 18

Slide 18 text

© ZOZO Technologies, Inc. 組織 18 「マイクロサービスは組織論である」

Slide 19

Slide 19 text

© ZOZO Technologies, Inc. アーキテクチャを反映した、開発しやすい組織体制に移行 新フレームワーク ロジック (Web表示のみ) ユーザー サービス RO お気に入り サービス RW 商品 サービス RW API Gateway ID認証 サービス RW 19

Slide 20

Slide 20 text

© ZOZO Technologies, Inc. ECプラットフォーム部 / プラットフォームSREの設立 (4月) EC開発本部 ZOZOTOWN フロントエンド バックエンド アプリ ZOZO 技術開発本部 ECプラットフォーム部 基幹 MSP USED CHINA SRE部 検索 マイグレーション API基盤 推薦基盤 サービス MLOps MA BtoB USED PF-SRE グロース EC開発本部と一緒にマイクロサービス化を進めていく 20

Slide 21

Slide 21 text

© ZOZO Technologies, Inc. ZOZOTOWNリプレイス2020上期の成果 21

Slide 22

Slide 22 text

© ZOZO Technologies, Inc. ZOZOTOWNリプレイス2020上期の成果 ● ストアド剥がし (継続) ● セッションオフロード ● 全面 Elasticsearch 化 ● リアルタイムデータ基盤 ● Azure 廃止 a.k.a. マルチクラウド廃止 ● ID 認証基盤リプレイス ● 全面 API Gateway 化 ● ZOZOTOWN API ガイドライン策定

Slide 23

Slide 23 text

© ZOZO Technologies, Inc. セッションオフロード (進行中) 23 ● セッション管理が Web サーバオンメモリの Sticky セッションだった ○ 課題: ロードバランシングさせづらい ● 外部共有メモリを使うように ElastiCache (Redis) に移行

Slide 24

Slide 24 text

© 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

Slide 25

Slide 25 text

© ZOZO Technologies, Inc. ● SQL Server の変更差分をリアルタイムに BigQuery へ取り込む仕組み ● セール時の大量データ更新でも数分で BigQuery に取り込めるように リアルタイムデータ基盤 25 https://techblog.zozo.com/entry/real-time-data-linkage-infrastructure

Slide 26

Slide 26 text

© ZOZO Technologies, Inc. Azure 廃止 a.k.a. マルチクラウド廃止 26 なぜ辞めたのか ● インフラコスト削減 ○ 片系が落ちても耐えられるように1.5~2倍程度のインフラコストをかけていた ● アジリティ (事業スピード) 向上 ○ アーキテクチャの複雑化によりアジリティが低下してビジネスチャンスを逃したことがあった ● 信頼性向上 ○ 理論上はマルチクラウドにより単一クラウドのSLAを超える信頼性確保が可能になる。しかし、実際は Azure と AWS 両方に詳しい必要があり難易度が高く信頼低下に影響があった ● 更新系リプレイス開始 ○ 更新系リプレイスにおいて今までのマルチクラウド設計では難があった

Slide 27

Slide 27 text

© ZOZO Technologies, Inc. 27 2020年3月 Azure 廃止 (7月)

Slide 28

Slide 28 text

© ZOZO Technologies, Inc. 28 全面 Gateway 経由化、ID基盤 (7月 / 11月) 内部切り替え (7月) 外部切り替え (11月) ID基盤リリース (11月) 下期

Slide 29

Slide 29 text

© ZOZO Technologies, Inc. ZOZOTOWN API ガイドライン 29 ● マイクロサービス化推進に伴い統一ガイドラインが必要だった ● 各チーム Tech Lead を集めて激論をかわして策定

Slide 30

Slide 30 text

© ZOZO Technologies, Inc. ● 新規構築したプラットフォーム環境において IaC, CI/CD を徹底 ● 開発体験の向上 - レビュー後にマージすればデプロイできる 全面 Infrastructure as Code, CI/CD化 30 https://docs.google.com/presentation/d/1Ez4wURim60oG49KDZ0W25GEGfiEeUrG5-3Hw6fNbh2A/edit#slide=id.p1

Slide 31

Slide 31 text

© ZOZO Technologies, Inc. まとめ ● この1年でマイクロサービス化のテンプレートを作る ● 全社レベルで取り組んでいる ● リプレイスできたら成功、ではない ○ プロダクトの成長のための土台づくり ○ 開発・運用体験の向上、組織の成熟、人材育成 ● まだまだチャレンジングな課題が転がっている

Slide 32

Slide 32 text

No content