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改善もDatadogとともに
Search
τ μ [taumu]
February 11, 2025
Programming
410
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CI改善もDatadogとともに
τ μ [taumu]
February 11, 2025
More Decks by τ μ [taumu]
See All by τ μ [taumu]
購入/決済のACIDを守るための冪等性の話
taumu
0
84
自作AIアプリの品質を上げるためにプロンプトエンジニアリングに再入門する
taumu
0
46
AIによる商品説明文生成〜よい説明文をとは何かを考える
taumu
0
59
react-query-auth + gin-jwtでユーザ認証
taumu
0
880
総合トップグロースに向けた負債返済のお話
taumu
0
1.3k
Gatsby + React + Redux によるゼロリスク・ハイリターンな個人開発
taumu
2
1.5k
Other Decks in Programming
See All in Programming
エージェントを使い続けるためのメタワーク / Meta-work for keeping using the agent
rkaga
6
2.2k
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
410
LLM 101
dalinaum
0
470
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
4
1.8k
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
360
Spec-Driven Development - Why Vaadin Is the Perfect Fit
simas
PRO
0
220
Vapor Mode でアクセシビリティは 壊れないか検証した話
fuqda
1
320
Kotlinize Is Not Just Converting to Kotlin
chigichan24
1
220
Crash Auto Pipelines
veronikapj
1
350
Python Lambdaにおけるテストしやすい設計とAI支援の活用 / Designing Testable Python Lambda Functions with AI
kitano_yuichi
1
290
Getting Started with Vibe Coding
miccheng
0
180
AIが生成したコードは読むべきか?抽象化設計とコードの品質保証 / abstraction-design-and-quality
minodriven
16
8.5k
Featured
See All Featured
The Limits of Empathy - UXLibs8
cassininazir
2
760
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
43k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.2k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
570
Building AI with AI
inesmontani
PRO
1
1.4k
brightonSEO & MeasureFest 2025 - Winning Strategies for Black Friday CRO & PPC - Christian Goodrich
cargoodrich
3
890
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.9k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
890
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1.1k
Testing 201, or: Great Expectations
jmmastey
46
8.4k
Transcript
20250212 taumu CI改善もDatadogとともに
SODA Inc. Backend Engineer taumu
鑑定付き 利用者数 No.1 スニーカー・トレカ フリマアプリ
SRE SWE SODAの技術組織と Datadog 権限はほぼ全て解放されており誰でも利用できる Application
Securityで 不正アクセスの自動ブロッ クをしたい APMで分散トレーシングし たい
SODA Inc. Backend Engineer Datadogの好きなところ: なんでも監視できる (複数種類の監視ツール使ったり チームごとにサイロ化したりしない) taumu
なんでも?
CI/CDも!
20250212 taumu CI改善もDatadogとともに
本発表について 背景:GitHub Actionsで実行されているCI/CDが遅い(ともに30分オーバー) CI = コミット毎に実行される自動テスト。マージには全件合格必須 CD: dev環境/本番環境へのデプロイ アクション:CI/CD実行時間短縮プロジェクトを立ち上げ様々な施策を実施 プロジェクトの詳細は以下の記事を参照ください
エンジニアだけのスクラムチームでリファクタリングプロジェクトを回してみたらこうなった https://zenn.dev/team_soda/articles/65fe9ee39abb8b 結果:CI/CDともに15分前後にまで短縮できた 本発表は本プロジェクトへのDatadogによる貢献について話す
DatadogのCI Visibility機能 CI/CD実行状況の統計が見られる機能
DatadogのCI Visibility機能 CI/CD実行状況の統計が見られる機能
PDCAサイクル Plan: ボトルネックを見つける&施策を出す 1 Do: 施策を実行する 2 Check: 期待通り改善されたかをチェックする 3
Action: 採用する or 棄却する 4
Plan: ボトルネックを見つける&施策を出す 1
Plan: ボトルネックを見つける&施策を出す Toplistで ワークフローの ボトルネックを調べる ボトルネック (平均30分掛かっている) (1)ボトルネックのワークフローを見つける
Plan: ボトルネックを見つける&施策を出す ワークフローの詳細を開くとフ レームグラフが見られる クリティカルパスで 絞り込める (2)ボトルネックのジョブを見つける
Plan: ボトルネックを見つける&施策を出す クリティカルパスで 絞り込める ボトルネックになっているジョブに対して施策を考える (ジョブの実行順序の組み替えだけで10分以上短縮できた例もあり) (2)ボトルネックのジョブを見つける ワークフローの詳細を開くとフ レームグラフが見られる
PDCAサイクル Plan: ボトルネックを見つける&施策を出す 1 Do: 施策を実行する 2 Check: 期待通り改善されたかをチェックする 3
Action: 採用する or 棄却する 4
Do: 施策を実行する 2
Do: 施策を実行する GitHub Actionsのymlファイルを改修してリリースする
PDCAサイクル Plan: ボトルネックを見つける&施策を出す 1 Do: 施策を実行する 2 Check: 期待通り改善されたかをチェックする 3
Action: 採用する or 棄却する 4
Check: 期待通り改善されたかをチェックする 3
Check: 期待通り改善されたかをチェックする Timeseriesで時系列平均を表示 CI実行時間の削減を確認 リリース前後でCI実行時間が削減されているかチェック
PDCAサイクル Plan: ボトルネックを見つける&施策を出す 1 Do: 施策を実行する 2 Check: 期待通り改善されたかをチェックする 3
Action: 採用する or 棄却する 4
Action: 採用する or 棄却する 4
Action: 採用する or 棄却する 採用 棄却 実行時間削減を達成できたか Check Action 効果のあった施策だけを採用することは重要
(普段の機能開発もそうだが、特にCIワークフローファイルは表現力の限界から負債化しやすいため) →効果があるかないか正確に把握できることが重要 Datadogで施策に対する効果を正確に把握できるので ビジネス上の判断が正確に下せる
PDCAサイクル Plan: ボトルネックを見つける&施策を出す 1 Do: 施策を実行する 2 Check: 期待通り改善されたかをチェックする 3
Action: 採用する or 棄却する 4 1~4までやったら、また1に戻る→このループを繰り返す
結果 ボトルネックになっていた CIワークフロー(統合テスト) 2ヶ月掛けて26m→13.5m
• Runnerのスケールアップ • ジョブ実行順序の組み替え • ビルドをキャッシュさせる[1][2] • ファイルの依存ツリーを作って編集したファイルに依存するテストだけ行う[1][3] 最後に:行った施策について 施策の検討に集中できるので、高難度な施策を実現するに至った
[1] どうやるの?CICDの実行時間をグッと短縮した方法 https://zenn.dev/team_soda/articles/b10194a91dbd34 [2] Goのビルドキャッシュを使って CIを7分短縮した話 https://zenn.dev/team_soda/articles/b2ae7b683f3f15 [3] 部分的にGoのテスト速度向上 https://zenn.dev/team_soda/articles/3686c0162f27dc
まとめ DatadogのCI Visibilityを使うと • CI実行に関する正確な統計情報が一目瞭然になる それにより • CI実行時間のボトルネックを簡単に見つけることができる • PDCAサイクルを回す形で継続的なCI改修ができる
• CIの改修に対する変化が明確になり、採用・棄却の正確な判断ができる • それにより大胆なCI改修も入れやすくなる