Slide 1

Slide 1 text

Cloud Run から GKE Autopilot へ、
 FAANS における Kubernetes 移行の背景とは
 株式会社ZOZO
 ブランドソリューション開発本部 
 WEAR部 SREブロック
 笹沢 椋太 Copyright © ZOZO, Inc. 1 Cloud Operator Days Tokyo 2022

Slide 2

Slide 2 text

© ZOZO, Inc. 株式会社ZOZO
 ブランドソリューション開発本部 WEAR部
 SREブロック 笹沢 椋太
 
 ● @sasamuku
 ● 登壇はじめて
 ● 最近の趣味はポケモンカード
 2

Slide 3

Slide 3 text

© ZOZO, Inc. https://wear.jp/
 3 ● ファッションコーディネートアプリ
 ● 1,600万ダウンロード突破、コーディネート投稿総数は1,200万件以上 (2022年3月末時点)
 ● ピックアップタグから最新のトレンドをチェック
 ● コーディネート着用アイテムを公式サイトで購入可能
 ● WEAR公認の人気ユーザーをWEARISTAと認定。モデル・タレント・デザ イナー・インフルエンサーといった各界著名人も参加


Slide 4

Slide 4 text

© ZOZO, Inc. 4 ● Fashion Advisors are Neighbors略
 ● 「ショップスタッフの
 効率的な販売をサポートする
 ショップスタッフ専用ツール」
 ● Web, iOS, Androidで提供
 FAANSとは
 プレスリリース: ZOZOTOWNとブランド実店舗をつなぐOMOプラットフォーム「ZOZOMO」始動 - 株式会社ZOZO, https://corp.zozo.com/news/20211028-16352/

Slide 5

Slide 5 text

© ZOZO, Inc. はじめに
 5 話すこと
 ● FAANS におけるコンテナ実行基盤のリプレイス事例
 ○ リプレイスを決めた背景
 ○ サービス選定理由
 ○ 移行して何が変わったか
 
 話さないこと
 ● Google Cloud Platform(GCP)を選定した背景
 ● Kubernetes の概要、詳細
 ● リプレイス方法の概要、詳細


Slide 6

Slide 6 text

© ZOZO, Inc. 6 リプレイスの背景


Slide 7

Slide 7 text

© ZOZO, Inc. リプレイス前のアーキテクチャ
 7 Cloud Run を中心としたアーキテクチャ


Slide 8

Slide 8 text

© ZOZO, Inc. リプレイス前のアーキテクチャ
 8 Cloud Run を中心としたアーキテクチャ


Slide 9

Slide 9 text

© ZOZO, Inc. Cloud Run とは
 9 フルマネージドでサーバレスなコンテナ実行基盤
 
 ● 特徴
 ○ 任意の言語で書かれたコード、任意のベースイメージをサポート
 ○ デプロイ単位は単一 Docker イメージ
 ○ シンプルですぐ利用できる


Slide 10

Slide 10 text

© ZOZO, Inc. 勝手に付いてくる
 Cloud Run はシンプル
 10 ✅ HTTPS エンドポイント
 ✅ オートスケール
 ✅ 冗長化
 ✅ ロギング、メトリクス収集
 Docker イメージ 名前 リージョン Docker イメージを用意してデプロイ

Slide 11

Slide 11 text

© ZOZO, Inc. GKE (Google Kubernetes Engine) とは
 11 GCP が提供する Kubernetes のマネージドサービス
 Node と Pod を
 管理する機能群
 ワークロードが
 稼働するマシン
 GCP管理
 ユーザ管理


Slide 12

Slide 12 text

© ZOZO, Inc. なぜ Cloud Run から GKE へリプレイスするのか
 12 理由は大きく2つあります


Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

© ZOZO, Inc. なぜ APM の利用が難しいのか
 14 サイドカーパターン
 Daemonset パターン
 一言で言えば、Cloud Run はシンプル重視の設計のため
 Cloud Run では
 複数コンテナを共存できない 
 Cloud Run では
 現実的な構成ではない
 


Slide 15

Slide 15 text

© ZOZO, Inc. 移行理由2: 技術スタックを見直す機会の到来
 15 ● 運用面での課題
 ○ プロダクト毎にコンピューティング基盤が異なる
 → キャッチアップやメンテナンスのコストが高い
 
 ● 組織面での変化
 ○ SRE メンバーの増強
 ○ 採用候補者へのアトラクト
 ○ 全社的な Kubernetes 活用
 → Kubernetes 移行の機運が高まる
 プロダクト毎にまちまち...
 Cloud Run

Slide 16

Slide 16 text

© ZOZO, Inc. Kubernetes をチーム標準へ
 16 Kubernetes に統一!
 GKE プロダクト毎にまちまち...
 Cloud Run

Slide 17

Slide 17 text

© ZOZO, Inc. 17 Standard か Autopilot か


Slide 18

Slide 18 text

© ZOZO, Inc. GKE には2つの運用モードがある
 18 Standard
 Control Plane がマネージド
 GCP管理
 ユーザ管理
 GCP管理
 GCP管理
 Autopilot
 Control Plane も Node もマネージド


Slide 19

Slide 19 text

© ZOZO, Inc. Node もマネージドとは
 19 Pod 仕様に応じて、必要スペックの Node が必要数プロビジョニングされる
 CA: Cluster Autoscaler
 NAP: Node Auto-provisioning


Slide 20

Slide 20 text

© ZOZO, Inc. FAANS は Autopilot を採用
 20 ● 運用負荷を軽減できる is good
 ● Autopilot に向かないシステム is 何


Slide 21

Slide 21 text

© ZOZO, Inc. Autopilot に向かないシステム その1
 制約にクリティカルな影響がある
 21 ● 基本的にホスト側のファイルシステムやネットワークを使用できない
 ○ 具体的には
 ■ hostPath ボリュームが使用できない(/var/log/配下のみ読取り可)
 ■ hostPort と hostNetwork が使用できない
 ■ ワークロード内のコンテナに対する Privileged mode が使用できない
 → 利用可能な Helm chart に制限を生じることがある
 Helm chart とは
 
 Kubernetes の機能を
 拡張するためのパッケージ
 制約がクリティカルな場合は Standard を選ぶ


Slide 22

Slide 22 text

© ZOZO, Inc. Autopilot に向かないシステム その2
 急峻な負荷変動が想定される
 22 ● オートスケールの仕組み上、
 Node 追加を伴う Pod スケールに時間がかかる傾向にある
 
 (再掲)
 
 負荷変動がシビアな場合は Standard の方が無難


Slide 23

Slide 23 text

© ZOZO, Inc. 23 リプレイスの全体像


Slide 24

Slide 24 text

© ZOZO, Inc. リプレイス前後のアーキテクチャ
 24 リプレイス前
 リプレイス後


Slide 25

Slide 25 text

© ZOZO, Inc. リプレイス前後のアーキテクチャ
 25 リプレイス前
 リプレイス後
 エンドポイントを
 Cloud Run→GKE へ
 置き換える


Slide 26

Slide 26 text

© ZOZO, Inc. リプレイス前後のアーキテクチャ
 26 リプレイス前
 リプレイス後
 エンドポイントを
 Cloud Run→GKE へ
 置き換える
 リプレイス方法の詳細についてはテックブログをご覧ください
 
 『FAANSにおけるCloud RunからGKE Autopilotへのリプレイス事例』
 https://techblog.zozo.com/entry/faans-replacement-to-gke-autopilot


Slide 27

Slide 27 text

© ZOZO, Inc. 27 まとめ


Slide 28

Slide 28 text

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


Slide 29

Slide 29 text

© ZOZO, Inc. まとめ
 29 ● FAANS におけるコンテナ実行基盤のリプレイス事例を紹介
 ○ Cloud Run はシンプルでとてもよいサービス
 ○ 諸理由から GKE Autopilot へリプレイス
 
 ● GKE Autopilot 
 ○ Node もマネージドで運用負荷が低い
 ○ 制約やスケール速度に若干クセがあるので注意
 


Slide 30

Slide 30 text

© ZOZO, Inc. 仲間募集中です!
 30 一緒に WEAR、FAANS を作り上げてくれる仲間を募集中です。
 ご興味のある方は、以下のリンクからぜひご応募ください。
 
 中途採用 - 株式会社ZOZO
 https://corp.zozo.com/recruit/mid-career/
 求人詳細
 エンジニア ▶ SRE ▶ WEAR SRE
 Twitter からでもお気軽に
 @sasamuku

Slide 31

Slide 31 text

No content