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.1k
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
Testing 201, or: Great Expectations
jmmastey
46
8.2k
Optimising Largest Contentful Paint
csswizardry
37
3.7k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
230
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
530
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
590
Mobile First: as difficult as doing things right
swwweet
225
10k
Accessibility Awareness
sabderemane
1
140
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
410
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
610
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
370
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