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
リリース作業をCI/CDで自動化するまで / What We Did for Automati...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Hiroki Koketsu
June 29, 2023
Programming
7.6k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
リリース作業をCI/CDで自動化するまで / What We Did for Automating Release Processes
Jun 22, 2023 - CI/CD最前線〜今開発現場が直面している課題とは?Lunch LT
https://findy.connpass.com/event/285883/
Hiroki Koketsu
June 29, 2023
More Decks by Hiroki Koketsu
See All by Hiroki Koketsu
AWS re:Invent 2024 recap
hkoketsu
0
3.2k
Other Decks in Programming
See All in Programming
App Intentsのビルドプロセスを支える技術
kntkymt
0
350
Swift愛好会100回記念 第1回を振り返る
jollyjoester
0
120
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
0
260
Go のフラットな パッケージに 「ファイル単位の private」を 〜Linter “declscope” を作った話〜
mpyw
0
250
FreeBSDでZabbixを動かす.pdf
kenkino
0
180
DroidKaigi 2026 「個人開発という実験場: Android エンジニアが手にする4つの自由」
slashnephy
0
230
【DroidKaigi 2026】「アクセシビリティを利用するとき、 アクセシビリティもまたこちらを利用している」 〜マルウェアによる攻撃と防衛について〜
halunoyo
0
460
ハーネス設計入門 〜プロンプト、コンテキストの次〜
kinopeee
56
38k
手動確認はもう限界 〜XCUITestでCustom URL Schemeの遷移を起動種別ごとに自動テストする〜 / Testing Custom URL Schemes with XCUITest
otouto
0
220
Can LLMs Replicate 4 Years of Compose Migration? Exploring the boundaries of automation with 279 XML files from a real product
makun
0
140
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
5
6.7k
How I Stole PSI from Android Studio - DroidKaigi2026
worker8
0
120
Featured
See All Featured
Claude Code のすすめ
schroneko
67
230k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
600
Navigating Team Friction
lara
192
16k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
How to make the Groovebox
asonas
2
2.4k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.7k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
440
Context Engineering - Making Every Token Count
addyosmani
9
1.1k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
540
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
The SEO Collaboration Effect
kristinabergwall1
1
560
The Invisible Side of Design
smashingmag
301
52k
Transcript
リリース作業をCI/CDで自動化するま で 株式会社ZOZO 計測プラットフォーム開発本部 SRE 纐纈 宏樹 Copyright © ZOZO,
Inc. 1
© ZOZO, Inc. 株式会社ZOZO 計測プラットフォーム開発本部 計測システム部 SRE 纐纈 宏樹 2022年ZOZOに入社。計測に関わるサービス開発や既存シ
ステムの運用に関わっています。 2
© ZOZO, Inc. https://zozo.jp/ 3 • ファッションEC • 1,500以上のショップ、8,400以上のブランドの取り扱い •
常時95万点以上の商品アイテム数と毎日平均2,900点以上の新着 商品 を掲載(2023年3月末時点) • ブランド古着のファッションゾーン「ZOZOUSED」や コスメ専門モール「ZOZOCOSME」、靴の専門モール 「ZOZOSHOES」、ラグジュアリー&デザイナーズゾーン 「ZOZOVILLA」を展開 • 即日配送サービス • ギフトラッピングサービス • ツケ払い など
© ZOZO, Inc. 4 https://zozo.jp/zozomat/ • 自宅にいながら簡単に高精度な足の3D計測ができる計測マット • 計測したデータをもとに、自分の足型と靴の“相性度”
を表示 • NIKEやCONVERSEなど5,587型以上のアイテムに対応 (2022年12月末時点)
© ZOZO, Inc. 5 https://zozo.jp/zozoglass/ • 自宅で簡単・高精度にご自身の顔の肌の色を計測できる フェイスカラー計測ツール • ECにおけるコスメ購入時の課題であった「色選び」に関する
不安や悩みを解消 • 肌の色を構成する成分、ヘモグロビン量とメラニン量を画像 から推定 • コスメ専門モール「ZOZOCOSME」で取り扱うベースメイクの 一部に対応 • 計測者数128万人を突破(2022年12月末時点)
© ZOZO, Inc. 今日の内容 6 • リリース作業を自動化するまでの取り組みをまとめて紹介 • 詳細はテックブログを読んでいただけると幸いです!
© ZOZO, Inc. 目次 • 弊部署が担当しているシステムの特徴 • CI/CD改善前と改善後の比較 • リリース自動化までの取り組み紹介
◦ Warmup ◦ Argo CD, Argo Rollouts ◦ Gatling ◦ Auto Merge 7
© ZOZO, Inc. 部署の特徴 • 異なる開発フェーズのプロダクトを複数担当している ◦ 保守運用 x 2
◦ 新機能追加 x 1 ◦ 新規構築 x 1 • AWS、K8s (EKS)、Scala 8
© ZOZO, Inc. リリースフロー改善前 9
© ZOZO, Inc. CI/CD改善前の課題 • プロダクトごとにリリース方法が統一されていない ◦ → 手順書のメンテやオンボーディングも大変 •
手作業があるので、ヒューマンエラーが起きる可能性あり • リリース頻度が低く、障害が起きても原因の切り分けが難しい 10
© ZOZO, Inc. リリースフロー改善後の現在 11
© ZOZO, Inc. リリースフロー改善後の現在 12
© ZOZO, Inc. 改善効果 13 改善前 改善後 作業時間 2~3h x
2人/週 0h 頻度 2~3週間に1回 PRごと 安全性 • 他チームに実機での動作確認を依頼 • リリース担当者がメトリクスを目視で確認 • 自動動作確認 • 自動負荷試験 • 自動メトリクスチェック • 段階的リリース • 自動ロールバック
© ZOZO, Inc. CI/CDの改善がもたらすメリット 14 • 人間がリリース作業に費やす時間を減らせる ◦ → 開発に集中できる
• 開発サイクルを早められる ◦ → 利益に直結する機能追加などを促進できる • リリースによる障害を減らせる ◦ → ユーザー体験の悪化や損失を防ぐことができる
© ZOZO, Inc. CI/CDの改善がもたらすデメリット 15 • インフラコストは増加してしまう ◦ リリースに必要なリソースがどうしても増えるので、仕方がない ◦
もたらされるメリットは非常に大きいので、コストを比較して判断
© ZOZO, Inc. 16 リリース自動化までの取り組み紹介 • 自動動作確認 • GitOps化 •
カナリアリリース • 自動負荷試験 • PRの自動マージ 16
© ZOZO, Inc. 17 Warmup • JIT(Just In Time)コンパイラーの暖機運転 ◦
擬似的なリクエストを送り、動的コンパイルを事前に完了させる ◦ 起動直後のパフォーマンスを上げることができる • これを使って、動作確認で使っていたAPIを一通り実行す る • 暖機運転終了後に、PodへのアクセスをReadiness Probeで許可 17
© ZOZO, Inc. 18 Argo CD • 開発環境 ◦ Image
Updaterを使い、常に最新のイメージタグをPullしている ◦ GitHub Actionsでブランチを指定して、ECRにイメージをPushすると、開発環 境の検証ができる 18
© ZOZO, Inc. 19 Argo CD 19
© ZOZO, Inc. 20 Argo CD • ステージング&本番環境 ◦ Image
Updaterで最新のイメージの変更を検知した後、K8sリポジトリにイメー ジタグの変更を通知 → GitHub Actionsでイメージタグ変更のPRを作成 → main/releaseブランチにマージすると、stg/prdにリリース 20
© ZOZO, Inc. 21 Argo Rollouts 21 • カナリアリリースを導入 ◦
Datadogメトリクスを参照の上、自動ロールバックが可能 ◦ 徐々にリリース比率を上げられるので、ユーザー影響を減らせる
© ZOZO, Inc. 22 Gatling • Argo CDのリソースフックを使って、ステージング環境のPodが入れ替わる際に、 自動で負荷試験を行なっている •
負荷試験結果は、S3にアップロードしてSlackに通知 22
© ZOZO, Inc. 23 Gatling 23
© ZOZO, Inc. 24 Auto Merge • 保守メインのプロダクトのライブラリ更新はPRのマージまで自動化したい ◦ ステージング環境
▪ UnitテストやインテグレーションテストのCIが通れば、OK ▪ → GitHubのAuto MergeをGitHub Actionsから有効化 ◦ 本番環境 ▪ ステージング環境の負荷試験が通れば、OK ▪ → Gatling完了時にスクリプトを実行して、PRを承認&マージ 24
© ZOZO, Inc. 25 25
None