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

More Decks by Ryota Sasazawa

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