Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Kubernetesを活用した開発者体験向上の取り組み
Search
ymktmk
January 24, 2024
5.2k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Kubernetesを活用した開発者体験向上の取り組み
ymktmk
January 24, 2024
More Decks by ymktmk
See All by ymktmk
WEARフロントエンドにおけるPull Request毎のPreview環境導入とその効果
ymktmk
1
12k
Featured
See All Featured
Practical Orchestrator
shlominoach
191
11k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.9k
GraphQLとの向き合い方2022年版
quramy
50
15k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.5k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
670
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
A better future with KSS
kneath
240
18k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
460
Navigating Weather and Climate Data
rabernat
0
280
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.3k
Transcript
Kubernetesを 活用した開発者体験向上の取り組み 株式会社ZOZO ブランドソリューション開発本部 WEARバックエンド部 SREブロック 山岡 朋樹 Copyright ©
ZOZO, Inc. Kubernetes活用の手引き 私たちの基盤構築・運用事例 Findy Lunch LT
© ZOZO, Inc. 2 自己紹介
© ZOZO, Inc. 株式会社ZOZO ブランドソリューション開発本部 WEARバックエンド部 SREブロック 山岡 朋樹 •
2023年4月 新卒入社 • WEARやFAANSのクラウド運用、リプレイスに従事 • Developer Experience向上が好き • X / GitHub: ymktmk 3
None
© ZOZO, Inc. https://zozo.jp/ • ファッションEC • 1,500以上のショップ、8,900以上のブランドの取り扱い • 常時95万点以上の商品アイテム数と毎日平均2,900点以上の新着
商品を掲載(2023年9月末時点) • ブランド古着のファッションゾーン「ZOZOUSED」や コスメ専門モール「ZOZOCOSME」、靴の専門モール 「ZOZOSHOES」、ラグジュアリー&デザイナーズゾーン 「ZOZOVILLA」を展開 • 即日配送サービス • ギフトラッピングサービス • ツケ払い など
© ZOZO, Inc. https://wear.jp/ • ファッションコーディネートアプリ • 1,600万ダウンロード突破、コーディネート投稿総数は1,400万 件以上(2023年9月末時点) •
ピックアップタグから最新のトレンドをチェック • コーディネート着用アイテムを公式サイトで購入可能 • WEAR公認の人気ユーザーをWEARISTAと認定。モデル・タレン ト・デザイナー・インフルエンサーといった各界著名人も参加
© ZOZO, Inc.
© ZOZO, Inc. 8 本日お話しすること
© 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
© ZOZO, Inc. 10 負荷試験基盤
© ZOZO, Inc. 11 開発者にとって確立された負荷試験方法がない • どの負荷試験ツールを使うのか ◦ Locust、K6、Gatling
etc. • どの基盤上で実施するのか ◦ 単一マシンで想定負荷をかけることができるのか • そもそもどうやって実施するのか ◦ 負荷試験が初めてでやり方がわからない 負荷試験で起きていた課題
© 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
© ZOZO, Inc. 13 分散負荷試験基盤の全体像
© ZOZO, Inc. 14 • 負荷試験を手軽に実施できるように • 単一マシン以上の大きな負荷で負荷試験が実施できるように 分散負荷試験基盤の導入後 •
GitHubでテストシナリオを管理 ◦ 過去のシナリオを再利用できるように ◦ 負荷試験のレビューを行えるように +αの効果
© ZOZO, Inc. 15 Pull Request毎のPreview環境
© ZOZO, Inc. 16 • Webフロントエンドのリプレイスで旧環境のUIと比較しながらレビュー ◦ UIレビューの負担がかかる ◦ UIレビュー中はProduction環境までリリースできない
• VercelやHerokuのようなモダンなPaaSに備わっているPull Request毎のPreview機能 が欲しい Pull Request毎のPreview環境導入の背景
© 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/
© ZOZO, Inc. 18 Pull Request毎のPreview環境 〜開発者視点〜 Helm icon from:
https://helm.sh
© ZOZO, Inc. 19 Pull Request毎のPreview環境 〜ユーザー視点〜
© ZOZO, Inc. WEAR Webチームの生の声 20 Pull Request毎のPreview環境の導入後
© ZOZO, Inc. 21 まとめ
© ZOZO, Inc. 22 まとめ • Kubernetesは高い拡張性を活かして様々な機能開発ができる • 弊チームでは、k6-operatorで分散負荷試験基盤、Argo
CD Pull Request Generator でPull Request毎のPreview環境を実現 • Kubernetesと「開発者体験向上」は相性が良い ☞ 運用において発生した課題を解決するツールの導入や開発がオススメ
© ZOZO, Inc. 23 今後の展望
© 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
© ZOZO, Inc. We are hiring!
© ZOZO, Inc. 26 ご清聴ありがとうございました!
None