Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
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
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
280
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
260
The Language of Interfaces
destraynor
162
27k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
The Pragmatic Product Professional
lauravandoore
37
7.5k
Making the Leap to Tech Lead
cromwellryan
135
10k
What does AI have to do with Human Rights?
axbom
PRO
1
2.4k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
7k
How to train your dragon (web standard)
notwaldorf
96
6.9k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
740
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
840
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