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

ZOZOTOWNリプレイス2020

Naotoshi Seo
November 05, 2020

 ZOZOTOWNリプレイス2020

Naotoshi Seo

November 05, 2020
Tweet

More Decks by Naotoshi Seo

Other Decks in Technology

Transcript

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

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


    • 常時73万点以上の商品アイテム数と毎日平均3,200点以上の新着 商 品を掲載
 • 即日配送サービス
 • ギフトラッピングサービス
 • ツケ払い など
 3
  3. © ZOZO Technologies, Inc. IIS (Web) RO iOS Android ブラウザ

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

    お気に入り サービス RW メンバー サービス RW ネイティブアプリはAPI 直呼び出し ブラウザ PC/SP iOS Android WebのUIに 新技術が使える ようになる それぞれのAPIが 独立したサービスに = マイクロサービス化 API Gateway ID認証 サービス RW 15 第2フェーズ: 目指す姿
  6. © 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レプリ クラウド
  7. © ZOZO Technologies, Inc. ECプラットフォーム部 / プラットフォームSREの設立 (4月) EC開発本部 ZOZOTOWN

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

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

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

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

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

    11月) 内部切り替え (7月) 外部切り替え (11月) ID基盤リリース (11月) 下期
  14. © ZOZO Technologies, Inc. • 新規構築したプラットフォーム環境において IaC, CI/CD を徹底 •

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

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