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

Cloud Run から GKE Autopilot へ、
FAANS における Kubern...

Cloud Run から GKE Autopilot へ、
FAANS における Kubernetes 移行の背景とは

Cloud Operator Days Tokyo 2022 での登壇資料です。
https://cloudopsdays.com/archive/2022/

内容は2022年5月時点のものです。
最新情報は公式ドキュメントを必ずご確認ください。

アーカイブ動画
https://youtu.be/q1xTWcHT2qg

Ryota Sasazawa

June 27, 2022
Tweet

Other Decks in Technology

Transcript

  1. Cloud Run から GKE Autopilot へ、
 FAANS における Kubernetes 移行の背景とは


    株式会社ZOZO
 ブランドソリューション開発本部 
 WEAR部 SREブロック
 笹沢 椋太 Copyright © ZOZO, Inc. 1 Cloud Operator Days Tokyo 2022
  2. © ZOZO, Inc. 株式会社ZOZO
 ブランドソリューション開発本部 WEAR部
 SREブロック 笹沢 椋太
 


    • @sasamuku
 • 登壇はじめて
 • 最近の趣味はポケモンカード
 2
  3. © ZOZO, Inc. https://wear.jp/
 3 • ファッションコーディネートアプリ
 • 1,600万ダウンロード突破、コーディネート投稿総数は1,200万件以上 (2022年3月末時点)


    • ピックアップタグから最新のトレンドをチェック
 • コーディネート着用アイテムを公式サイトで購入可能
 • WEAR公認の人気ユーザーをWEARISTAと認定。モデル・タレント・デザ イナー・インフルエンサーといった各界著名人も参加

  4. © ZOZO, Inc. 4 • Fashion Advisors are Neighbors略
 •

    「ショップスタッフの
 効率的な販売をサポートする
 ショップスタッフ専用ツール」
 • Web, iOS, Androidで提供
 FAANSとは
 プレスリリース: ZOZOTOWNとブランド実店舗をつなぐOMOプラットフォーム「ZOZOMO」始動 - 株式会社ZOZO, https://corp.zozo.com/news/20211028-16352/
  5. © ZOZO, Inc. はじめに
 5 話すこと
 • FAANS におけるコンテナ実行基盤のリプレイス事例
 ◦

    リプレイスを決めた背景
 ◦ サービス選定理由
 ◦ 移行して何が変わったか
 
 話さないこと
 • Google Cloud Platform(GCP)を選定した背景
 • Kubernetes の概要、詳細
 • リプレイス方法の概要、詳細

  6. © ZOZO, Inc. Cloud Run とは
 9 フルマネージドでサーバレスなコンテナ実行基盤
 
 •

    特徴
 ◦ 任意の言語で書かれたコード、任意のベースイメージをサポート
 ◦ デプロイ単位は単一 Docker イメージ
 ◦ シンプルですぐ利用できる

  7. © ZOZO, Inc. 勝手に付いてくる
 Cloud Run はシンプル
 10 ✅ HTTPS

    エンドポイント
 ✅ オートスケール
 ✅ 冗長化
 ✅ ロギング、メトリクス収集
 Docker イメージ 名前 リージョン Docker イメージを用意してデプロイ
  8. © ZOZO, Inc. GKE (Google Kubernetes Engine) とは
 11 GCP

    が提供する Kubernetes のマネージドサービス
 Node と Pod を
 管理する機能群
 ワークロードが
 稼働するマシン
 GCP管理
 ユーザ管理

  9. © ZOZO, Inc. 移行理由1: Datadog APM の利用が難しい
 13 監視に Datadog

    を利用している
 弊チームでは APM を活用してサービスの状態を把握
 
 • APM (Application Performance Monitoring) とは
 ◦ リクエスト数、エラー数、レイテンシを可視化
 ◦ リクエスト毎の処理時間やボトルネックを追跡できる
 time 
 request
 controller
 DB
 api
 何にどのくらい
 時間がかかったのか
 分かる
 <トレース機能のイメージ>
  10. © ZOZO, Inc. なぜ APM の利用が難しいのか
 14 サイドカーパターン
 Daemonset パターン


    一言で言えば、Cloud Run はシンプル重視の設計のため
 Cloud Run では
 複数コンテナを共存できない 
 Cloud Run では
 現実的な構成ではない
 

  11. © ZOZO, Inc. 移行理由2: 技術スタックを見直す機会の到来
 15 • 運用面での課題
 ◦ プロダクト毎にコンピューティング基盤が異なる


    → キャッチアップやメンテナンスのコストが高い
 
 • 組織面での変化
 ◦ SRE メンバーの増強
 ◦ 採用候補者へのアトラクト
 ◦ 全社的な Kubernetes 活用
 → Kubernetes 移行の機運が高まる
 プロダクト毎にまちまち...
 Cloud Run
  12. © ZOZO, Inc. GKE には2つの運用モードがある
 18 Standard
 Control Plane がマネージド


    GCP管理
 ユーザ管理
 GCP管理
 GCP管理
 Autopilot
 Control Plane も Node もマネージド

  13. © ZOZO, Inc. FAANS は Autopilot を採用
 20 • 運用負荷を軽減できる

    is good
 • Autopilot に向かないシステム is 何

  14. © ZOZO, Inc. Autopilot に向かないシステム その1
 制約にクリティカルな影響がある
 21 • 基本的にホスト側のファイルシステムやネットワークを使用できない


    ◦ 具体的には
 ▪ hostPath ボリュームが使用できない(/var/log/配下のみ読取り可)
 ▪ hostPort と hostNetwork が使用できない
 ▪ ワークロード内のコンテナに対する Privileged mode が使用できない
 → 利用可能な Helm chart に制限を生じることがある
 Helm chart とは
 
 Kubernetes の機能を
 拡張するためのパッケージ
 制約がクリティカルな場合は Standard を選ぶ

  15. © ZOZO, Inc. Autopilot に向かないシステム その2
 急峻な負荷変動が想定される
 22 • オートスケールの仕組み上、


    Node 追加を伴う Pod スケールに時間がかかる傾向にある
 
 (再掲)
 
 負荷変動がシビアな場合は Standard の方が無難

  16. © ZOZO, Inc. リプレイス前後のアーキテクチャ
 26 リプレイス前
 リプレイス後
 エンドポイントを
 Cloud Run→GKE

    へ
 置き換える
 リプレイス方法の詳細についてはテックブログをご覧ください
 
 『FAANSにおけるCloud RunからGKE Autopilotへのリプレイス事例』
 https://techblog.zozo.com/entry/faans-replacement-to-gke-autopilot

  17. © ZOZO, Inc. 移行してみて何が変わったか
 28 • Datadog APM が利用できるように
 ✅

    サービスの状態を可視化
 ✅ 監視・SLO に役立てられる
 
 • Cloud Run より柔軟性・拡張性が UP
 ✅ 設定の自由度が高い
 ✅ 様々なエコシステムが利用できる
 
 • チーム全体の運用コスト削減
 ✅ プロダクト間で技術スタックが統一された
 ✅ 知見やノウハウの横展開ができている

  18. © ZOZO, Inc. まとめ
 29 • FAANS におけるコンテナ実行基盤のリプレイス事例を紹介
 ◦ Cloud

    Run はシンプルでとてもよいサービス
 ◦ 諸理由から GKE Autopilot へリプレイス
 
 • GKE Autopilot 
 ◦ Node もマネージドで運用負荷が低い
 ◦ 制約やスケール速度に若干クセがあるので注意
 

  19. © ZOZO, Inc. 仲間募集中です!
 30 一緒に WEAR、FAANS を作り上げてくれる仲間を募集中です。
 ご興味のある方は、以下のリンクからぜひご応募ください。
 


    中途採用 - 株式会社ZOZO
 https://corp.zozo.com/recruit/mid-career/
 求人詳細
 エンジニア ▶ SRE ▶ WEAR SRE
 Twitter からでもお気軽に
 @sasamuku