ZOZOTOWNリプレイス2020 ZOZO Technologies Meetup〜ZOZOTOWNシステムリプレイスの裏側〜2020/11/05 株式会社ZOZOテクノロジーズ SRE部 リーダー 瀬尾 直利 Copyright © ZOZO Technologies, Inc.
View Slide
© ZOZO Technologies, Inc.瀬尾 直利 (そのっつ) 株式会社ZOZOテクノロジーズ2019年1月入社 SREスペシャリストCSIRT 兼SRE部 ML-SRE 兼SRE部 プラットフォームSREリーダー 兼リプレイス戦略Twitter/GitHub: @sonotsCRuby、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.62004年 ZOZOTOWN オープン
© ZOZO Technologies, Inc.7ZOZOTOWNはアーキテクチャを変えずに規模を拡大してきた
© ZOZO Technologies, Inc.IIS (Web)ROiOS AndroidブラウザPC/SPリプレイス開始前: 〜2017年ストアド ストアド ストアド8IIS (API)ロジックがDBに載っている(ストアド)成功● データの近くで処理を行うため高速(特に2005年当時はネットワークが細い)● ロジックをDBに載せることでDRYにできる課題● ストアドプロシージャ(ストアド)をスケールさせづらい● ストアドのテストが書きづらい● Classic ASP● Windows Server の構築自動化が難しい● 現実問題、ASPレイヤーで2重管理になっているロジックは存在する
© ZOZO Technologies, Inc.92017年4月
© ZOZO Technologies, Inc.102017年当時のリプレイス計画
© ZOZO Technologies, Inc.Java APIRead OnlySQLストアドをはがしてAPIに移設第1フェーズ: 2017年〜2020年 参照系ロジックのストアド剥がし11IIS (Web)ROiOS AndroidブラウザPC/SPストアド ストアド ストアドRead OnlyIIS (API)DBレプリ課題● ASPレイヤーのロジックがそのまま● 更新系のリプレイスが未計画● オンプレIISが入り口のままであるためオンプレを卒業できない設計● デプロイの順番待ち (モノリス)● ビッグバンアップグレード (モノリス)Read Only成功● ストアドロジックが減った● クラウドに移設したことでスケーラビリティを手にいれた (ECサイトは参照リクエストが圧倒的に多い)ZOZO DC クラウド
© ZOZO Technologies, Inc.既存の課題解決とZOZOTOWNリプレイスを加速させるため新アーキテクチャと新体制の計画をスタート122020年1月そのっつ参画
© ZOZO Technologies, Inc.改めて目的を再確認。なぜリプレイスするのかZOZOTOWNの成長のためスピードをあげるコストをさげる人材をふやすこれらを達成できる組織にする13
© ZOZO Technologies, Inc.2020年度、リプレイスプロジェクトで進めることまず、変更しやすくしたい。1. ストアドはがし(継続)2. マイクロサービスの立ち上げ14
© ZOZO Technologies, Inc.新フレームワークロジック(Web表示のみ)商品サービスROお気に入りサービスRWメンバーサービスRWネイティブアプリはAPI直呼び出しブラウザPC/SPiOS AndroidWebのUIに新技術が使えるようになるそれぞれのAPIが独立したサービスに= マイクロサービス化API GatewayID認証サービスRW15第2フェーズ: 目指す姿
© ZOZO Technologies, Inc.商品サービスROお気に入りサービスRWメンバーサービスRWAPI GatewayID認証サービスRW16IIS (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商品サービスRWAPI GatewayID認証サービスRW19
© ZOZO Technologies, Inc.ECプラットフォーム部 / プラットフォームSREの設立 (4月)EC開発本部ZOZOTOWNフロントエンドバックエンドアプリZOZO技術開発本部ECプラットフォーム部基幹 MSP USED CHINASRE部検索 マイグレーション API基盤 推薦基盤サービスMLOpsMA BtoB USEDPF-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 化24https://techblog.zozo.com/entry/search-performance-improvementhttps://techblog.zozo.com/entry/migrating-zozotown-search-platform
© ZOZO Technologies, Inc.● SQL Server の変更差分をリアルタイムに BigQuery へ取り込む仕組み● セール時の大量データ更新でも数分で BigQuery に取り込めるようにリアルタイムデータ基盤25https://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.272020年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化30https://docs.google.com/presentation/d/1Ez4wURim60oG49KDZ0W25GEGfiEeUrG5-3Hw6fNbh2A/edit#slide=id.p1
© ZOZO Technologies, Inc.まとめ● この1年でマイクロサービス化のテンプレートを作る● 全社レベルで取り組んでいる● リプレイスできたら成功、ではない○ プロダクトの成長のための土台づくり○ 開発・運用体験の向上、組織の成熟、人材育成● まだまだチャレンジングな課題が転がっている