Slide 1

Slide 1 text

Kubernetesを
 活用した開発者体験向上の取り組み
 株式会社ZOZO
 ブランドソリューション開発本部
 WEARバックエンド部 SREブロック
 山岡 朋樹 Copyright © ZOZO, Inc. Kubernetes活用の手引き 私たちの基盤構築・運用事例
 Findy Lunch LT


Slide 2

Slide 2 text

© ZOZO, Inc. 2 自己紹介

Slide 3

Slide 3 text

© ZOZO, Inc. 株式会社ZOZO
 ブランドソリューション開発本部 WEARバックエンド部
 SREブロック
 山岡 朋樹
 ● 2023年4月 新卒入社
 ● WEARやFAANSのクラウド運用、リプレイスに従事
 ● Developer Experience向上が好き
 ● X / GitHub: ymktmk
 3

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

© ZOZO, Inc. https://zozo.jp/ ● ファッションEC ● 1,500以上のショップ、8,900以上のブランドの取り扱い ● 常時95万点以上の商品アイテム数と毎日平均2,900点以上の新着 商品を掲載(2023年9月末時点) ● ブランド古着のファッションゾーン「ZOZOUSED」や コスメ専門モール「ZOZOCOSME」、靴の専門モール 「ZOZOSHOES」、ラグジュアリー&デザイナーズゾーン 「ZOZOVILLA」を展開 ● 即日配送サービス ● ギフトラッピングサービス ● ツケ払い など

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

© ZOZO, Inc.

Slide 8

Slide 8 text

© ZOZO, Inc. 8 本日お話しすること

Slide 9

Slide 9 text

© ZOZO, Inc. 9 お話しすること
 ● Kubernetes Operatorを活用した開発者体験向上の取り組み事例
 ○ 負荷試験基盤
 ○ Pull Request毎のPreview環境
 お話ししないこと
 ● Kubernetesの概要・詳細
 ● Platform周辺技術の詳細
 WEARにおけるKubernetesネイティブな負荷試験基盤の導入とその効果 : https://techblog.zozo.com/entry/wear-kubernetes-load-test-platform WEARにおけるPull Request毎のPreview環境導入とその効果 : https://speakerdeck.com/ymktmk/wearhurontoendoniokerupull-requestmei-nopreviewhuan-jing-dao-ru-tosonoxiao-guo

Slide 10

Slide 10 text

© ZOZO, Inc. 10 負荷試験基盤

Slide 11

Slide 11 text

© ZOZO, Inc. 11 開発者にとって確立された負荷試験方法がない
 
 ● どの負荷試験ツールを使うのか
 ○ Locust、K6、Gatling etc.
 
 ● どの基盤上で実施するのか 
 ○ 単一マシンで想定負荷をかけることができるのか
 
 ● そもそもどうやって実施するのか
 ○ 負荷試験が初めてでやり方がわからない 
 負荷試験で起きていた課題


Slide 12

Slide 12 text

© ZOZO, Inc. 12 ● どの負荷試験ツールを使うのか
 ○ JavaScriptで書きやすいK6を負荷試験ツールとして統一
 
 ● どの基盤上で実施するのか
 ○ k6-operatorを用いて複数Podで負荷試験できるように
 
 ● そもそもどうやって実施するのか
 ○ GitHub ActionsのWeb UIを介して容易に実施できるように
 分散負荷試験基盤で課題解決
 k6 Document: https://k6.io/ k6-operator GitHub: https://github.com/grafana/k6

Slide 13

Slide 13 text

© ZOZO, Inc. 13 分散負荷試験基盤の全体像


Slide 14

Slide 14 text

© ZOZO, Inc. 14 ● 負荷試験を手軽に実施できるように
 ● 単一マシン以上の大きな負荷で負荷試験が実施できるように
 分散負荷試験基盤の導入後
 ● GitHubでテストシナリオを管理
 ○ 過去のシナリオを再利用できるように
 ○ 負荷試験のレビューを行えるように
 +αの効果


Slide 15

Slide 15 text

© ZOZO, Inc. 15 Pull Request毎のPreview環境

Slide 16

Slide 16 text

© ZOZO, Inc. 16 ● Webフロントエンドのリプレイスで旧環境のUIと比較しながらレビュー
 ○ UIレビューの負担がかかる
 ○ UIレビュー中はProduction環境までリリースできない
 
 ● VercelやHerokuのようなモダンなPaaSに備わっているPull Request毎のPreview機能 が欲しい
 Pull Request毎のPreview環境導入の背景


Slide 17

Slide 17 text

© ZOZO, Inc. 17 Pull Request毎のPreview環境の実現方法
 ● pr100.preview.wear.jpにアクセスするとPR100のPreview環境へ
 ○ ワイルドカードドメインとする(*.preview.wear.jp)
 ○ Istio VirtualServiceのホストアドレスルーティング
 
 ● Pull Requestを検知してKubernetesへデプロイ
 ○ Argo CD Pull Request Generator
 ○ Helm TemplateでVirtualService、Service、Deploymentを管理
 Istio VirtualService Document: https://istio.io/latest/docs/reference/config/networking/virtual-service/ Argo CD Pull Request Generator Document: https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Pull-Request/

Slide 18

Slide 18 text

© ZOZO, Inc. 18 Pull Request毎のPreview環境 〜開発者視点〜
 Helm icon from: https://helm.sh

Slide 19

Slide 19 text

© ZOZO, Inc. 19 Pull Request毎のPreview環境 〜ユーザー視点〜


Slide 20

Slide 20 text

© ZOZO, Inc. WEAR Webチームの生の声
 20 Pull Request毎のPreview環境の導入後


Slide 21

Slide 21 text

© ZOZO, Inc. 21 まとめ

Slide 22

Slide 22 text

© ZOZO, Inc. 22 まとめ
 ● Kubernetesは高い拡張性を活かして様々な機能開発ができる
 
 ● 弊チームでは、k6-operatorで分散負荷試験基盤、Argo CD Pull Request Generator でPull Request毎のPreview環境を実現
 
 ● Kubernetesと「開発者体験向上」は相性が良い
 
 ☞ 運用において発生した課題を解決するツールの導入や開発がオススメ


Slide 23

Slide 23 text

© ZOZO, Inc. 23 今後の展望

Slide 24

Slide 24 text

© ZOZO, Inc. 2022 2023 ● EKSの導入 ● Argo CDでGitOps ● 負荷試験基盤 ● Preview環境 2024 現在 ● QA環境 より開発者に優しい基盤作りと さらなる運用自動化を目指す! 今後の展望
 WEARにおけるKubernetes導入と改善の歩み: https://techblog.zozo.com/entry/wear-kubernetes-introduction-and-improvement ワークフロー実行基盤を FargateからEC2に移行したらコストもパフォーマンス改善できて幸せになった話 : https://techblog.zozo.com/entry/reconfigure-eks-workflow-infrastructure

Slide 25

Slide 25 text

© ZOZO, Inc. We are hiring!


Slide 26

Slide 26 text

© ZOZO, Inc. 26 ご清聴ありがとうございました!

Slide 27

Slide 27 text

No content