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
argo-rolloutsにコミットした話
Search
TAKAyukiatkwsk
April 19, 2025
Programming
0
30
argo-rolloutsにコミットした話
Kanazawa.rb meetup #152 でLTしたときの資料です。
TAKAyukiatkwsk
April 19, 2025
Tweet
Share
More Decks by TAKAyukiatkwsk
See All by TAKAyukiatkwsk
EnvoyのWasm filterを体験する
takayukiatkwsk
0
44
自分用趣味アプリを作っている話
takayukiatkwsk
0
92
zoxideのご紹介
takayukiatkwsk
0
89
Kanazawa.rbに参加してからのふりかえり
takayukiatkwsk
0
45
git-secretsとgitフックをざっと理解する
takayukiatkwsk
0
330
計測プラットフォームSREチームとシステム障害対応 / measurement platform SRE team's incident response
takayukiatkwsk
0
1.1k
Flutterに入門して体重グラフアプリを作る / Get started Flutter and build a weight graph app
takayukiatkwsk
0
410
リモートワークを振り返る / Look back on remote-working
takayukiatkwsk
0
120
ブログでのアウトプットが減っている件 / What long intervals my blog posts have!
takayukiatkwsk
0
100
Other Decks in Programming
See All in Programming
PHP 8.4の新機能「プロパティフック」から学ぶオブジェクト指向設計とリスコフの置換原則
kentaroutakeda
2
740
Google Agent Development Kit でLINE Botを作ってみた
ymd65536
2
220
「Cursor/Devin全社導入の理想と現実」のその後
saitoryc
0
750
LT 2025-06-30: プロダクトエンジニアの役割
yamamotok
0
700
ニーリーにおけるプロダクトエンジニア
nealle
0
760
プロダクト志向ってなんなんだろうね
righttouch
PRO
0
180
A full stack side project webapp all in Kotlin (KotlinConf 2025)
dankim
0
100
XP, Testing and ninja testing
m_seki
3
230
Webの外へ飛び出せ NativePHPが切り拓くPHPの未来
takuyakatsusa
2
510
PipeCDのプラグイン化で目指すところ
warashi
1
260
dbt民主化とLLMによる開発ブースト ~ AI Readyな分析サイクルを目指して ~
yoshyum
3
690
今ならAmazon ECSのサービス間通信をどう選ぶか / Selection of ECS Interservice Communication 2025
tkikuc
21
3.9k
Featured
See All Featured
The Invisible Side of Design
smashingmag
301
51k
Scaling GitHub
holman
459
140k
Code Review Best Practice
trishagee
69
18k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.9k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
RailsConf 2023
tenderlove
30
1.1k
Become a Pro
speakerdeck
PRO
28
5.4k
Stop Working from a Prison Cell
hatefulcrawdad
270
21k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.4k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Designing for humans not robots
tammielis
253
25k
Transcript
argo-rolloutsに コミットした話 2025-04-19 Kanazawa.rb meetup #152 Takayuki Takagi
自己紹介 • Takayuki Takagi (髙木貴之 / ニボシーニョ) • @TAKAyuki_atkwsk /
takayukiatkwsk • SRE @ ZOZO • AWS, Kubernetes, Scala, Ruby, Go, etc. • ビール、餃子、サッカー観戦が好き 2
今日の話 • argo-rolloutsというOSSにコミットした ◦ 些細な修正 • バグの発見・調査・対応の流れについて話す
argo-rolloutsについて • Kubernetesにおいて安全かつ段階的にソフトウェアをリリースす るための仕組み(コントローラー) ◦ blue-green ◦ カナリアリリース ◦ ロールアウトスピードの調整
◦ メトリクスによる続行・ロールバックの自動判断 ◦ トラフィックの重み付け (ちなみに)Kubernetes自体にもローリングアップデートを実現する仕組みはある
argo-rolloutsとの関わり • 弊チームで受け持つサービス基盤に導入済み • 導入事例についてはチームメンバーが書いた技術ブログを読んでみてくだ さい #PR ◦ Argo Rolloutsを導入してカナリアリリースを実現する
◦ https://techblog.zozo.com/entry/argo-rollouts-canary-release
簡単に説明 api:v2 api:v1 api:v2 api:v2 Datadog LB メトリクス api:v2 api:v1
api:v1 api:v1 argo- rollouts step • 25% • 50% • 100% 集計された メトリクスを取得
簡単に説明 api:v1 api:v2 api:v1 api:v2 api:v2 Datadog LB メトリクス api:v2
api:v1 api:v1 argo- rollouts step • 25% • 50% • 100% 集計された メトリクスを取得 v2でエ ラー多発
バグらしきものを見つけた • argo-rollouts v1.8.0に更新 • ロールアウトが失敗するようになった ◦ 設定は変えていない • Datadog
APIのクレデンシャルが見つけられない旨のエラーメッ セージが出力される • v1.7.xでは再現せず • バグかもしれないと疑い始める
調査 • Issueを探す ◦ 同様の事象はヒットせず • ソースコードを読む ◦ クレデンシャルを参照する処理がv1.8.0で変更されているのを発見 ◦
自分なりに原因箇所を特定 ▪ 設定関連(Secret)が怪しい • さてこの後どうするか?
対応 • 導入済みの環境について ◦ 明示的に設定項目を追加するという回避策はある ◦ が、設定方法の関係で少し冗長になる • バグを直す ◦
原因と思われる箇所を特定したので何とか直せそう ◦ 念のため詳しい人の意見も聞いておきたい • 対応方針を決めた ◦ 暫定的に設定を変えてargo-rolloutsのバージョンを上げて運用する ◦ Issueを出して適切な方策を探る
補足)原因箇所 • Datadogの設定をSecretリソースとして定義する ◦ APIに接続するための設定 • Secretを読んだあと、required設定がなされているかのチェック ◦ ここでaddressもチェックされていて、クレデンシャルが見つからな いよというエラーになっていたと考えられる
required required optional
Issue作成 • Issue作成時に目的を聞かれる • テンプレートに沿って記入 ◦ この時点では原因と思われることは記 入せず様子見 https://github.com/argoproj/argo-rollouts/issues/4103
Issueにて • コミッターからアドバイスを頂く(当日中!) • 私からの返信 ◦ アドバイスを試してみたものの挙動が変わらないことの報告 ◦ 原因と思われる箇所についてどう思うか? •
他のコミッターからのコメント ◦ 原因それやね ◦ 君が見つけたのならPull request出してみたら?と提案受ける • Pull requestを作成する流れに
Pull request作成 • 作成前にCONTRIBUTING.mdを読む • 該当箇所の修正 + ユニットテストの追加 • Pull
request作成 ◦ テンプレート内にチェックリストがあるので対応する
https://github.com/argoproj/argo-rollouts/pull/4145
まとめ • 無事にマージされ、v1.8.1としてリ リースされた • 手続きに沿いながら解決できてよ かった • 初のコミットだったものの、コミッ ターからアドバイス等いただけて安
心した