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
How to make easy and casual CI management in CO...
Search
Kenta Murata
July 24, 2013
Technology
1.7k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
How to make easy and casual CI management in COOKPAD
Kenta Murata
July 24, 2013
More Decks by Kenta Murata
See All by Kenta Murata
waitany と waitall を作った話
mrkn
0
330
HolidayJp.jl を作りました
mrkn
0
380
Calling Julia functions from Streamlit applications
mrkn
1
620
Red Data Tools で切り開く Ruby の未来
mrkn
3
1.3k
Method-based JIT compilation by transpiling to Julia
mrkn
0
9.2k
Apache Arrow C++ Datasets
mrkn
4
1.9k
Reducing ActiveRecord memory consumption using Apache Arrow
mrkn
0
1.9k
RubyData and Rails
mrkn
0
3.5k
Tensor and Arrow
mrkn
0
1.1k
Other Decks in Technology
See All in Technology
生成 AI の基礎 〜 サンプル実装で学ぶ基本原理
enakai00
7
4.4k
ハーレムエンジニアリング
kazuma777777
0
150
Genie Codeハンズオン基礎編
taka_aki
1
120
【CEDEC2026】コードレビュー支援ツール開発から学ぶ:LLMを用いた業務システムの実践的な運用設計と誤出力対策
cygames
PRO
0
760
事業価値と Engineering 2026年度版
recruitengineers
PRO
49
23k
【CEDEC2026】次世代デジタルカードゲームのサーバー設計と運用 〜『Shadowverse: Worlds Beyond』の舞台裏~
cygames
PRO
1
1.3k
変化の早いClaude Codeを 書籍に落とし込む
oikon48
7
1.4k
メルカリのグローバルアプリで挑んだ AlloyDB 運用と課題解決の実践記
hatappi
0
250
Flutterをカメラで動かしたかった話
sony
1
140
Goでデータパイプラインを作ろう
sansantech
PRO
1
450
DatadogのBits Chatが開発組織にもたらしたもの / What Bits Chat Has Brought Us
sms_tech
1
260
社内の7割が使うデータ基盤を、 データチーム2人で回すためにやったこと
koh_yoshi
4
1.3k
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Discover your Explorer Soul
emna__ayadi
2
1.3k
Testing 201, or: Great Expectations
jmmastey
46
8.2k
Designing for humans not robots
tammielis
254
26k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
370
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.7k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
1.1k
[SF Ruby Conf 2025] Rails X
palkan
2
1.3k
Unsuck your backbone
ammeep
672
58k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
170
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
630
Transcript
How to make easy and casual CI management in COOKPAD
Kenta Murata 2013.07.24 Testing Casual Talks #1 at :DeNA Friday, July 26, 13
Kenta Murata CRuby committer DevInfra Engineer at COOKPAD Friday, July
26, 13
Friday, July 26, 13
Friday, July 26, 13
Friday, July 26, 13
bit.ly/cookpad_jobs Friday, July 26, 13
Background Friday, July 26, 13
About 1 year ago... Friday, July 26, 13
$ ree_be rake stats +----------------------+-------+-------+---------+---------+-----+-------+ | Name | Lines |
LOC | Classes | Methods | M/C | LOC/M | +----------------------+-------+-------+---------+---------+-----+-------+ | Controllers | 16708 | 13381 | 154 | 1153 | 7 | 9 | | Helpers | 6228 | 5179 | 0 | 508 | 0 | 8 | | Models | 38665 | 30777 | 861 | 3248 | 3 | 7 | | Libraries | 29363 | 23740 | 238 | 2189 | 9 | 8 | | Functional tests | 9 | 7 | 1 | 0 | 0 | 0 | | Unit tests | 72 | 54 | 10 | 0 | 0 | 0 | | Integration specs | 21207 | 17381 | 2 | 83 | 41 | 207 | | Chanko specs | 15700 | 13030 | 1 | 103 | 103 | 124 | | Model specs | 22247 | 18297 | 3 | 35 | 11 | 520 | | Controller specs | 17061 | 14080 | 6 | 49 | 8 | 285 | | Helper specs | 588 | 507 | 0 | 0 | 0 | 0 | | Routing specs | 128 | 102 | 1 | 1 | 1 | 100 | +----------------------+-------+-------+---------+---------+-----+-------+ | Total | 167976 | 136535 | 1277 | 7369 | 5 | 16 | +----------------------+-------+-------+---------+---------+-----+-------+ Code LOC: 73077 Test LOC: 63458 Code to Test Ratio: 1:0.9 Sunday, September 16, 12 in Sapporo RubyKaigi 2012 Friday, July 26, 13
$ ree_be rake stats +----------------------+-------+-------+---------+---------+-----+-------+ | Name | Lines |
LOC | Classes | Methods | M/C | LOC/M | +----------------------+-------+-------+---------+---------+-----+-------+ | Controllers | 16708 | 13381 | 154 | 1153 | 7 | 9 | | Helpers | 6228 | 5179 | 0 | 508 | 0 | 8 | | Models | 38665 | 30777 | 861 | 3248 | 3 | 7 | | Libraries | 29363 | 23740 | 238 | 2189 | 9 | 8 | | Functional tests | 9 | 7 | 1 | 0 | 0 | 0 | | Unit tests | 72 | 54 | 10 | 0 | 0 | 0 | | Integration specs | 21207 | 17381 | 2 | 83 | 41 | 207 | | Chanko specs | 15700 | 13030 | 1 | 103 | 103 | 124 | | Model specs | 22247 | 18297 | 3 | 35 | 11 | 520 | | Controller specs | 17061 | 14080 | 6 | 49 | 8 | 285 | | Helper specs | 588 | 507 | 0 | 0 | 0 | 0 | | Routing specs | 128 | 102 | 1 | 1 | 1 | 100 | +----------------------+-------+-------+---------+---------+-----+-------+ | Total | 167976 | 136535 | 1277 | 7369 | 5 | 16 | +----------------------+-------+-------+---------+---------+-----+-------+ Code LOC: 73077 Test LOC: 63458 Code to Test Ratio: 1:0.9 861 Models Sunday, September 16, 12 in Sapporo RubyKaigi 2012 Friday, July 26, 13
$ ree_be rake stats +----------------------+-------+-------+---------+---------+-----+-------+ | Name | Lines |
LOC | Classes | Methods | M/C | LOC/M | +----------------------+-------+-------+---------+---------+-----+-------+ | Controllers | 16708 | 13381 | 154 | 1153 | 7 | 9 | | Helpers | 6228 | 5179 | 0 | 508 | 0 | 8 | | Models | 38665 | 30777 | 861 | 3248 | 3 | 7 | | Libraries | 29363 | 23740 | 238 | 2189 | 9 | 8 | | Functional tests | 9 | 7 | 1 | 0 | 0 | 0 | | Unit tests | 72 | 54 | 10 | 0 | 0 | 0 | | Integration specs | 21207 | 17381 | 2 | 83 | 41 | 207 | | Chanko specs | 15700 | 13030 | 1 | 103 | 103 | 124 | | Model specs | 22247 | 18297 | 3 | 35 | 11 | 520 | | Controller specs | 17061 | 14080 | 6 | 49 | 8 | 285 | | Helper specs | 588 | 507 | 0 | 0 | 0 | 0 | | Routing specs | 128 | 102 | 1 | 1 | 1 | 100 | +----------------------+-------+-------+---------+---------+-----+-------+ | Total | 167976 | 136535 | 1277 | 7369 | 5 | 16 | +----------------------+-------+-------+---------+---------+-----+-------+ Code LOC: 73077 Test LOC: 63458 Code to Test Ratio: 1:0.9 17381 Integration spec LOC Sunday, September 16, 12 in Sapporo RubyKaigi 2012 Friday, July 26, 13
6000 6500 7000 7500 • • • • • •
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • ••• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • 05/01 06/01 07/01 Timestamp Examples count 6000 6500 7000 7500 • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • ••• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • 05/01 06/01 07/01 Timestamp Examples count The number of examples in COOKPAD’s spec les Sunday, September 16, 12 in Sapporo RubyKaigi 2012 Friday, July 26, 13
• • • • • • • • • •
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • 07/01 08/01 09/01 Timestamp 6000 6500 7000 7500 • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • ••• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • 05/01 06/01 07/01 Timestamp Examples count The number of examples in COOKPAD’s spec les Sunday, September 16, 12 in Sapporo RubyKaigi 2012 Friday, July 26, 13
Condition Execution time single rspec too long; unmeasurable 8-core parallel_tests
over 1 hour 5 workers, each have 6-cores about 15 min Sunday, September 16, 12 in Sapporo RubyKaigi 2012 Friday, July 26, 13
Sunday, September 16, 12 in Sapporo RubyKaigi 2012 Friday, July
26, 13
Sunday, September 16, 12 in Sapporo RubyKaigi 2012 Friday, July
26, 13
After that... Friday, July 26, 13
$ be rake cookpad:stats Friday, July 26, 13
$ be rake cookpad:stats +----------------------+-------+-------+---------+---------+-----+-------+ | Name | Lines |
LOC | Classes | Methods | M/C | LOC/M | +----------------------+-------+-------+---------+---------+-----+-------+ | Controllers | 27186 | 21690 | 257 | 2074 | 8 | 8 | | Helpers | 8331 | 6872 | 1 | 749 | 749 | 7 | | Models | 52737 | 41014 | 988 | 4511 | 4 | 7 | | Workers | 534 | 451 | 18 | 29 | 1 | 13 | | Chanko units | 14617 | 12386 | 5 | 196 | 39 | 61 | | Libraries | 40694 | 32471 | 408 | 3238 | 7 | 8 | | Feature specs | 24109 | 19915 | 0 | 119 | 0 | 165 | | Request specs | 5925 | 5035 | 0 | 11 | 0 | 455 | | Routing specs | 418 | 330 | 0 | 1 | 0 | 328 | | Controller specs | 39965 | 32978 | 5 | 99 | 19 | 331 | | Helper specs | 2183 | 1831 | 0 | 5 | 0 | 364 | | Model specs | 42931 | 35051 | 4 | 61 | 15 | 572 | | Worker specs | 868 | 717 | 0 | 1 | 0 | 715 | | Chanko unit specs | 12616 | 10365 | 0 | 46 | 0 | 223 | | Library specs | 16298 | 13515 | 24 | 107 | 4 | 124 | +----------------------+-------+-------+---------+---------+-----+-------+ | Total | 289412 | 234621 | 1710 | 11247 | 6 | 18 | +----------------------+-------+-------+---------+---------+-----+-------+ Code LOC: 234621 Test LOC: 0 Code to Test Ratio: 1:0.0 Friday, July 26, 13
Model classes 861 → 988 Feature specs LOC 17381 →
19915 Summary of differences Friday, July 26, 13
00:09:27.001 (05) 2085 examples, 0 failures, 6 pendings 00:09:27.001 (05)
00:09:27.001 (05) Took 355.818754421 seconds 00:09:27.098 (05) parallel:spec --> 0.010000 0.090000 1551.140000 (359.309562) 00:09:27.098 (05) cookpad:spec --> 0.370000 0.190000 1551.600000 (359.778909) 00:09:27.739 INFO: Total Results -------- 00:09:27.740 00:09:27.740 Congratulation! All Tests passed. 00:09:27.740 13177 examples, 0 failure, 162 pending 00:09:30.608 ** Invoke cookpad:spec:ci:post_growth_forecast (first_time) 00:09:30.609 ** Execute cookpad:spec:ci:post_growth_forecast 00:09:30.650 00:09:30.651 Statistical summary of spec execution time: 00:09:30.651 00:09:30.651 total 9528.663149494996 00:09:30.651 mean 9.144590354601723 00:09:30.651 variance 410.34485361844173 00:09:30.651 standard deviation 20.256970494583875 00:09:30.651 00:09:30.652 minimum 0.000853474 00:09:30.652 1st quartile 0.8062394975 00:09:30.652 median 2.527339377 00:09:30.652 3rd quartile 8.658470989000001 00:09:30.652 maximum 198.142290118 00:09:30.652 00:09:30.652 Slow Spec Files: 00:09:30.653 00:09:30.653 ./spec/features/device/recipe_spec.rb --> 3 min 18.142290118000005 sec 00:09:30.653 ./spec/features/recipes_hot_spec.rb --> 3 min 9.98139715100001 sec (18 Friday, July 26, 13
00:09:27.001 (05) 2085 examples, 0 failures, 6 pendings 00:09:27.001 (05)
00:09:27.001 (05) Took 355.818754421 seconds 00:09:27.098 (05) parallel:spec --> 0.010000 0.090000 1551.140000 (359.309562) 00:09:27.098 (05) cookpad:spec --> 0.370000 0.190000 1551.600000 (359.778909) 00:09:27.739 INFO: Total Results -------- 00:09:27.740 00:09:27.740 Congratulation! All Tests passed. 00:09:27.740 13177 examples, 0 failure, 162 pending 00:09:30.608 ** Invoke cookpad:spec:ci:post_growth_forecast (first_time) 00:09:30.609 ** Execute cookpad:spec:ci:post_growth_forecast 00:09:30.650 00:09:30.651 Statistical summary of spec execution time: 00:09:30.651 00:09:30.651 total 9528.663149494996 00:09:30.651 mean 9.144590354601723 00:09:30.651 variance 410.34485361844173 00:09:30.651 standard deviation 20.256970494583875 00:09:30.651 00:09:30.652 minimum 0.000853474 00:09:30.652 1st quartile 0.8062394975 00:09:30.652 median 2.527339377 00:09:30.652 3rd quartile 8.658470989000001 00:09:30.652 maximum 198.142290118 00:09:30.652 00:09:30.652 Slow Spec Files: 00:09:30.653 00:09:30.653 ./spec/features/device/recipe_spec.rb --> 3 min 18.142290118000005 sec 00:09:30.653 ./spec/features/recipes_hot_spec.rb --> 3 min 9.98139715100001 sec (18 Friday, July 26, 13
00:09:27.001 (05) 2085 examples, 0 failures, 6 pendings 00:09:27.001 (05)
00:09:27.001 (05) Took 355.818754421 seconds 00:09:27.098 (05) parallel:spec --> 0.010000 0.090000 1551.140000 (359.309562) 00:09:27.098 (05) cookpad:spec --> 0.370000 0.190000 1551.600000 (359.778909) 00:09:27.739 INFO: Total Results -------- 00:09:27.740 00:09:27.740 Congratulation! All Tests passed. 00:09:27.740 13177 examples, 0 failure, 162 pending 00:09:30.608 ** Invoke cookpad:spec:ci:post_growth_forecast (first_time) 00:09:30.609 ** Execute cookpad:spec:ci:post_growth_forecast 00:09:30.650 00:09:30.651 Statistical summary of spec execution time: 00:09:30.651 00:09:30.651 total 9528.663149494996 00:09:30.651 mean 9.144590354601723 00:09:30.651 variance 410.34485361844173 00:09:30.651 standard deviation 20.256970494583875 00:09:30.651 00:09:30.652 minimum 0.000853474 00:09:30.652 1st quartile 0.8062394975 00:09:30.652 median 2.527339377 00:09:30.652 3rd quartile 8.658470989000001 00:09:30.652 maximum 198.142290118 00:09:30.652 00:09:30.652 Slow Spec Files: 00:09:30.653 00:09:30.653 ./spec/features/device/recipe_spec.rb --> 3 min 18.142290118000005 sec 00:09:30.653 ./spec/features/recipes_hot_spec.rb --> 3 min 9.98139715100001 sec (18 Friday, July 26, 13
00:09:27.001 (05) 2085 examples, 0 failures, 6 pendings 00:09:27.001 (05)
00:09:27.001 (05) Took 355.818754421 seconds 00:09:27.098 (05) parallel:spec --> 0.010000 0.090000 1551.140000 (359.309562) 00:09:27.098 (05) cookpad:spec --> 0.370000 0.190000 1551.600000 (359.778909) 00:09:27.739 INFO: Total Results -------- 00:09:27.740 00:09:27.740 Congratulation! All Tests passed. 00:09:27.740 13177 examples, 0 failure, 162 pending 00:09:30.608 ** Invoke cookpad:spec:ci:post_growth_forecast (first_time) 00:09:30.609 ** Execute cookpad:spec:ci:post_growth_forecast 00:09:30.650 00:09:30.651 Statistical summary of spec execution time: 00:09:30.651 00:09:30.651 total 9528.663149494996 00:09:30.651 mean 9.144590354601723 00:09:30.651 variance 410.34485361844173 00:09:30.651 standard deviation 20.256970494583875 00:09:30.651 00:09:30.652 minimum 0.000853474 00:09:30.652 1st quartile 0.8062394975 00:09:30.652 median 2.527339377 00:09:30.652 3rd quartile 8.658470989000001 00:09:30.652 maximum 198.142290118 00:09:30.652 00:09:30.652 Slow Spec Files: 00:09:30.653 00:09:30.653 ./spec/features/device/recipe_spec.rb --> 3 min 18.142290118000005 sec 00:09:30.653 ./spec/features/recipes_hot_spec.rb --> 3 min 9.98139715100001 sec (18 We use Ruby 2.0.0-p247 Friday, July 26, 13
The problem is still remaining 1) Tests are continuously growing
2) The reason of test execution time under 10min is that Ruby 2.0 is faster than REE Friday, July 26, 13
How does it come? Friday, July 26, 13
One large monolithic Rails application Friday, July 26, 13
One large monolithic Rails application Friday, July 26, 13
One large monolithic Rails application Multiple Rails applications sharing models
via API Friday, July 26, 13
Friday, July 26, 13
Friday, July 26, 13
Applications will be increased, but they are too small than
cookpad. Friday, July 26, 13
Applications will be increased, but they are too small than
cookpad. Test execution time won’t be raised if their CI jobs are executed in parallel. Friday, July 26, 13
How to manage CI? Friday, July 26, 13
Current CI Friday, July 26, 13
Friday, July 26, 13
ci-slave-ruby200-001 ci-slave-ruby200-002 ci-slave-ruby200-00{3,4,5} ci-slave-ruby200-00{2,3}-midnight mysql56 qt48 mysql55 qt47 cookpad mysql55
qt47 mysql55 qt47 elasticsearch ruby200 m1.large ruby200 ruby200 ruby193 ruby200 ruby193 midnight Node labels Friday, July 26, 13
ci-slave-...-001 ci-slave-...-002 ci-slave-...-003 ci-slave-...-004 ci-slave-...-005 ci-slave-...-002-midnight ci-slave-...-003-midnight 8am 10pm Nodes’
availability Friday, July 26, 13
ci-slave-ruby200-001 ci-slave-ruby200-002 ci-slave-ruby200-00{3,4,5} ci-slave-ruby200-00{2,3}-midnight mysql56 qt48 mysql55 qt47 cookpad mysql55
qt47 mysql55 qt47 elasticsearch ruby200 m1.large ruby200 ruby200 ruby193 ruby200 ruby193 midnight Node labels Friday, July 26, 13
Developers DevInfra Omukins cookpad cafe omuken Friday, July 26, 13
Friday, July 26, 13
Demonstration Friday, July 26, 13
github.com/mrkn/whitesnake Fork m e on GitHub Friday, July 26, 13
!e End Friday, July 26, 13
bit.ly/cookpad_jobs Friday, July 26, 13