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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
340
HolidayJp.jl を作りました
mrkn
0
390
Calling Julia functions from Streamlit applications
mrkn
1
630
Red Data Tools で切り開く Ruby の未来
mrkn
3
1.3k
Method-based JIT compilation by transpiling to Julia
mrkn
0
9.3k
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
LLMアプリ、 雰囲気で運用してませんか? 〜LLMOpsの現在地〜
taka_aki
1
660
markdown-poster Introduction
kazamori
0
460
Hub & Spoke 環境のネットワークルーティングを分解してみる
tsuyataku
1
500
Bet AI Day 2026丨Agentは、「金融」という巨大産業の何を変えられるのか
layerx
PRO
0
510
Kiro5兄弟のいまどきのセキュリティ基礎知識
kentapapa
0
490
いま好きなこと 最初はそんなに好きじゃなかった #tamagawadev
nishiuma
1
170
分割40%キーボードにスムーズに入門するには
hoto17296
1
210
KAEN Company Deck
kaen
PRO
0
230
Introduction to Bill One Development Engineer
sansan33
PRO
0
490
Jetpack Compose で挑む新聞紙面UI ─ 複合ジェスチャー・ポリゴン記事領域・適応的ページ構成という3つの壁/droidkaigi2026
nikkei_engineer_recruiting
0
120
When Token Pruning is Worse than Random: Understanding Visual Token Information in VLLMs
sansantech
PRO
0
220
PdMをやめて、 "プロダクトビルダー"という 働き方に変えました / PdM to Product Builder
shikichee
2
610
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.3k
Side Projects
sachag
455
43k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
320
Bash Introduction
62gerente
615
220k
Building AI with AI
inesmontani
PRO
1
1.2k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
830
Build your cross-platform service in a week with App Engine
jlugia
234
19k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.9k
Git: the NoSQL Database
bkeepers
PRO
432
67k
We Are The Robots
honzajavorek
0
330
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.5k
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