$30 off During Our Annual Pro Sale. View Details »

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. ZOZOTOWNリプレイス2020


    ZOZO Technologies Meetup〜ZOZOTOWNシステムリプレイスの裏側〜
    2020/11/05

    株式会社ZOZOテクノロジーズ

    SRE部

    リーダー 瀬尾 直利

    Copyright © ZOZO Technologies, Inc.

    View Slide

  2. © ZOZO Technologies, Inc.
    瀬尾 直利 (そのっつ)

    株式会社ZOZOテクノロジーズ
    2019年1月入社 SREスペシャリスト
    CSIRT 兼
    SRE部 ML-SRE 兼
    SRE部 プラットフォームSREリーダー 兼
    リプレイス戦略
    Twitter/GitHub: @sonots
    CRuby、Fluentd コミッタ
    2

    View Slide

  3. © ZOZO Technologies, Inc.
    https://zozo.jp/

    ● 日本最大級のファッション通販サイト

    ● 1,300以上のショップ、7,400以上のブランドの取り扱い(ともに2019年12
    月末時点)

    ● 常時73万点以上の商品アイテム数と毎日平均3,200点以上の新着 商
    品を掲載

    ● 即日配送サービス

    ● ギフトラッピングサービス

    ● ツケ払い など

    3

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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重管理になっている
    ロジックは存在する

    View Slide

  9. © ZOZO Technologies, Inc.
    9
    2017年4月

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

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

    View Slide

  32. View Slide