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
CircleCI ユーザーミートアップ
Search
Masayuki Mizuno
July 30, 2026
63
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CircleCI ユーザーミートアップ
Masayuki Mizuno
July 30, 2026
More Decks by Masayuki Mizuno
See All by Masayuki Mizuno
関数型まつり2026
fetburner
2
810
Rails アプリの docker build を 倍速にした話
fetburner
2
180
Omotesando.rb #110
fetburner
0
210
Continuation is to be continued
fetburner
1
2.4k
callccの実装を読む
fetburner
0
250
RubyでSlackのbotを作ろう
fetburner
0
220
継続オペレータの話
fetburner
0
280
Rubyでリストモナドを使う
fetburner
0
220
次世代のプロファイラVernierを試す
fetburner
0
160
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
590
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
From π to Pie charts
rasagy
0
240
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.5k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
820
What does AI have to do with Human Rights?
axbom
PRO
1
2.3k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
62
45k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.4k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
440
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
200
Transcript
CircleCI ユーザーミートアップ 計測から始める CI 改善 3倍の高速化を実現した秘訣 Jul 30, 2026 -
Masayuki Mizuno ©2026 Wantedly, Inc.
自己紹介 水野雅之 所属: ウォンテッドリー株式会社 職業: インフラエンジニア(2025/07〜) Twitter (現X): @fetburner mixi2:
@lgtm GitHub: https://github.com/fetburner ©2026 Wantedly, Inc.
本発表のゴール ボトルネックの計測による CI 改善事例の紹介 ボトルネックに注力することで、工数の費用対効果良く改善を進められる • Insights によるコスト要因の分析 • ワークフローグラフによるクリティカルパスの発見
• ワークフロー分割によるコスト削減・所要時間削減 ©2026 Wantedly, Inc.
アジェンダ 1. ボトルネックの分析 2. ワークフロー分割による改善手法 3. 個別のワークフロー改善手法 4. まとめ ©2026
Wantedly, Inc.
ボトルネックの分析 ©2026 Wantedly, Inc.
コスト要因となるプロジェクトの分析 Total Creditsの多いプロジェクトに注力すると良い Insightsから見られる ©2026 Wantedly, Inc.
コスト要因となるワークフローの分析 Total Creditの多いワークフローを改善すると良い Insightsから見られる ©2026 Wantedly, Inc.
パイプライン高速化の要点 他を待たせている所を重点的に改善する 先に終わるワークフローを高速化しても全体の所要時間には寄与しない ©2026 Wantedly, Inc.
クリティカルパスの分析 Pipelinesから実際の実行ログを見る ワークフローグラフを基に、最長パスを見つける ©2026 Wantedly, Inc.
個別ワークフローのボトルネックの分析 Pipelinesから実際の実行ログを見る CPUとメモリの利用率が見れる ©2026 Wantedly, Inc.
テスト実行のボトルネック 極端に遅いテストが無いか確認する 個別の最適化は割に合わないので外れ値だけ見ると良い ©2026 Wantedly, Inc.
テストのボトルネック テストはDatadog Test Optimizationで確認する 実行のトレースまで見れる ©2026 Wantedly, Inc.
ワークフロー分割による改善手法 ©2026 Wantedly, Inc.
CIコストの考え方 コストは長方形の面積の総和で表される 縦軸が resource class の時間単価で、横軸が実行時間 支払う面積 = マシン性能 ×
実行時間 実際の CPU / メモリ使用量 マシン性能 (resource class) 3 xlarge medium 1 2 test-prepare rspec small asset-precompile 実行時間 → CI のコスト = ①+②+③ … 使用量の曲線を覆う長方形の “面積の総和” ©2026 Wantedly, Inc.
コスト削減の二つの軸 中身の高速化と計算機性能削減の二軸 高速化(キャッシュ導入など) Before マシンスペックを下げる 横幅が縮む ↑ マシン性能 面積 100
高さが下がる 面積 60 面積 50 実行時間 → 時間もコストも減る 縦と横は独立に効く。ただし高さを下げすぎると曲線を覆えず、横に伸びて面積が減らない ©2026 Wantedly, Inc. コストだけ減る
単純な計算機性能削減の問題点 必ずしもコスト削減には繋がらない メモリ不足の場合OOMでワークフローが実行不能に陥ることも 性能(高さ)を下げただけ 実際に起きること マシン性能 / 使用量 マシン性能 /
使用量 性能不足 元の右端 時間が横に伸びる 時間 時間 8 分 → 14〜15 分。面積(コスト)は減らない ©2026 Wantedly, Inc.
解決手段: ワークフロー分割 計算機性能を使っている部分を切り出す 計算機が遊んでいる時間を減らせる 支払う面積(長方形) 実際の使用量(曲線) 1 枚の長方形で覆う 切り直して覆う マシン性能
/ 使用量 マシン性能 / 使用量 無駄 = 面積 − 使用量 時間 ピークに合わせた高い長方形 → 面積(コスト)大 ©2026 Wantedly, Inc. 時間 同じ曲線を小さい面積で被覆 → コスト減
ワークフロー分割の更なる効能: 所要時間の短縮 依存関係が無ければ並列に実行できる ワークフロー内の処理の依存関係に着目し、並列化できるなら分割のチャンス 支払う面積(マシン性能 × 実行時間) 実際の CPU 使用率
Before: 1 ジョブ・直列 After: 2 ジョブに分けて並列実行 2 つが同時に走るので、縦に積み上がる 8分 短縮 所要時間 12分 重い処理(ピーク) medium × 8分 所要時間 20分 medium 1 ジョブに全部入り medium × 20分 small 軽い処理 small × 12分 0 5 10 15 20 0 5 10 (分) 面積(コスト) = 40 20 (分) 面積(コスト) = 12 + 16 = 28 並列化で右端が左に寄り(所要時間 −40%)、ピークを切り出した側は低い resource class で足りる(コスト −30%) ©2026 Wantedly, Inc. 15
ワークフロー分割の罠 初期化処理は並列化でも軽くならない ©2026 Wantedly, Inc.
CIコストと所要時間のバランス 並列化による時間短縮効果はどこかで飽和する 開発者と相談してスイートスポットを探す事になる 実行時間 T(N)(アムダールの法則) コスト C(N) N = 1
のときを 1 とした比 コスト C(N) = N×余白 + 仕事量 時間は飽和、コストだけ増える 2.5 2.0 1.5 1.0 0.5 実行時間 T(N) = 余白 + 仕事量/N 1 2 3 4 5 6 7 並列数 N ©2026 Wantedly, Inc. 8 9 10 11 12
個別のワークフロー改善手法 ©2026 Wantedly, Inc.
テスト高速化手法: DBチューニング テストをTRANSACTIONとROLLBACKで囲む テスト中に作成したレコードをディスクに書き込ませない ©2026 Wantedly, Inc.
ブラウザテストの高速化手法: タイムアウトの短縮 ブラウザテストのタイムアウトを意図的に短縮 Flaky spec で落ちる際タイムアウトまで待っていたので、早めに切り上げる事にした ©2026 Wantedly, Inc.
まとめ ©2026 Wantedly, Inc.
まとめ 1. コスト要因はInsightsから見れる 2. ワークフローグラフでクリティカルパスを見る 3. CIコストは時間と性能の2軸で考える 4. 並列化はコストとの兼ね合いを考えて ©2026
Wantedly, Inc.