Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ZOZOTOWNリプレイス2020

Aef92c3acc29ad8543e04135687fc4f1?s=47 Naotoshi Seo
November 05, 2020

 ZOZOTOWNリプレイス2020

Aef92c3acc29ad8543e04135687fc4f1?s=128

Naotoshi Seo

November 05, 2020
Tweet

Transcript

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

    直利
 Copyright © ZOZO Technologies, Inc.
  2. © ZOZO Technologies, Inc. 瀬尾 直利 (そのっつ)
 株式会社ZOZOテクノロジーズ 2019年1月入社 SREスペシャリスト

    CSIRT 兼 SRE部 ML-SRE 兼 SRE部 プラットフォームSREリーダー 兼 リプレイス戦略 Twitter/GitHub: @sonots CRuby、Fluentd コミッタ 2
  3. © ZOZO Technologies, Inc. https://zozo.jp/
 • 日本最大級のファッション通販サイト
 • 1,300以上のショップ、7,400以上のブランドの取り扱い(ともに2019年12 月末時点)


    • 常時73万点以上の商品アイテム数と毎日平均3,200点以上の新着 商 品を掲載
 • 即日配送サービス
 • ギフトラッピングサービス
 • ツケ払い など
 3
  4. © ZOZO Technologies, Inc. アジェンダ • ZOZOTOWNリプレイスのおさらい • 2020年度以降の新体制とアーキテクチャ •

    2020年度以降の成果紹介
  5. © ZOZO Technologies, Inc. ZOZOTOWNリプレイスのおさらい 5

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

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

  8. © ZOZO Technologies, Inc. IIS (Web) RO iOS Android ブラウザ

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

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

  11. © 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 クラウド
  12. © ZOZO Technologies, Inc. 既存の課題解決と ZOZOTOWNリプレイスを加速させるため 新アーキテクチャと新体制 の計画をスタート 12 2020年1月

    そのっつ参画
  13. © ZOZO Technologies, Inc. 改めて目的を再確認。なぜリプレイスするのか ZOZOTOWNの成長のため スピード をあげる コスト をさげる

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

    14
  15. © ZOZO Technologies, Inc. 新フレームワーク ロジック (Web表示のみ) 商品 サービス RO

    お気に入り サービス RW メンバー サービス RW ネイティブアプリはAPI 直呼び出し ブラウザ PC/SP iOS Android WebのUIに 新技術が使える ようになる それぞれのAPIが 独立したサービスに = マイクロサービス化 API Gateway ID認証 サービス RW 15 第2フェーズ: 目指す姿
  16. © 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レプリ クラウド
  17. © ZOZO Technologies, Inc. この1年でマイクロサービスの完成形テンプレートを作る 17

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

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

    RO お気に入り サービス RW 商品 サービス RW API Gateway ID認証 サービス RW 19
  20. © ZOZO Technologies, Inc. ECプラットフォーム部 / プラットフォームSREの設立 (4月) EC開発本部 ZOZOTOWN

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

  22. © ZOZO Technologies, Inc. ZOZOTOWNリプレイス2020上期の成果 • ストアド剥がし (継続) • セッションオフロード

    • 全面 Elasticsearch 化 • リアルタイムデータ基盤 • Azure 廃止 a.k.a. マルチクラウド廃止 • ID 認証基盤リプレイス • 全面 API Gateway 化 • ZOZOTOWN API ガイドライン策定
  23. © ZOZO Technologies, Inc. セッションオフロード (進行中) 23 • セッション管理が Web

    サーバオンメモリの Sticky セッションだった ◦ 課題: ロードバランシングさせづらい • 外部共有メモリを使うように ElastiCache (Redis) に移行
  24. © 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
  25. © ZOZO Technologies, Inc. • SQL Server の変更差分をリアルタイムに BigQuery へ取り込む仕組み

    • セール時の大量データ更新でも数分で BigQuery に取り込めるように リアルタイムデータ基盤 25 https://techblog.zozo.com/entry/real-time-data-linkage-infrastructure
  26. © ZOZO Technologies, Inc. Azure 廃止 a.k.a. マルチクラウド廃止 26 なぜ辞めたのか

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

  28. © ZOZO Technologies, Inc. 28 全面 Gateway 経由化、ID基盤 (7月 /

    11月) 内部切り替え (7月) 外部切り替え (11月) ID基盤リリース (11月) 下期
  29. © ZOZO Technologies, Inc. ZOZOTOWN API ガイドライン 29 • マイクロサービス化推進に伴い統一ガイドラインが必要だった

    • 各チーム Tech Lead を集めて激論をかわして策定
  30. © ZOZO Technologies, Inc. • 新規構築したプラットフォーム環境において IaC, CI/CD を徹底 •

    開発体験の向上 - レビュー後にマージすればデプロイできる 全面 Infrastructure as Code, CI/CD化 30 https://docs.google.com/presentation/d/1Ez4wURim60oG49KDZ0W25GEGfiEeUrG5-3Hw6fNbh2A/edit#slide=id.p1
  31. © ZOZO Technologies, Inc. まとめ • この1年でマイクロサービス化のテンプレートを作る • 全社レベルで取り組んでいる •

    リプレイスできたら成功、ではない ◦ プロダクトの成長のための土台づくり ◦ 開発・運用体験の向上、組織の成熟、人材育成 • まだまだチャレンジングな課題が転がっている
  32. None