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
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
320
HolidayJp.jl を作りました
mrkn
0
370
Calling Julia functions from Streamlit applications
mrkn
1
610
Red Data Tools で切り開く Ruby の未来
mrkn
3
1.3k
Method-based JIT compilation by transpiling to Julia
mrkn
0
9.1k
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.4k
Tensor and Arrow
mrkn
0
1.1k
Other Decks in Technology
See All in Technology
Comment regagner la souveraineté de vos données tout en étant payé grâce à Nostr !
rlifchitz
0
200
iOS アプリの「これって不具合ですか?」を AI に調べてもらう
miichan
0
140
感情と身体を置き去りにしない、エンジニアの生きのこり方 ──いまから、ここから「自分の状態」を扱うという選択
saorimurooka
0
340
AI 不只幫你寫 Code: 當專案從 300 暴增到 1500, 我們如何撐住 DevOps
appleboy
0
250
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
11k
GitHub Copilot app最速の発信の裏側
tomokusaba
1
260
脱SaaS!FDEを支えるプロビジョニングと分離設計
knih
0
300
製造現場での生成AIの活用、およびエージェントAIの実装のあり方、AVEVAの取り組み
iotcomjpadmin
0
110
從開發到部署全都交給 AI:實作 AI 驅動的自動化流程
appleboy
0
170
コミットの「なぜ」を読む
ota1022
0
120
SteampipeとExcel Power QueryでAWS構成定義書の作成を自動化する
jhashimoto
0
180
事業会社における 機械学習・推薦システム技術の活用事例と必要な能力 / ml-recsys-in-layerx-wantedly-2026
yuya4
0
160
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
46
8.2k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
330
Building an army of robots
kneath
306
46k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
Writing Fast Ruby
sferik
630
63k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
450
Abbi's Birthday
coloredviolet
3
8.2k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
Raft: Consensus for Rubyists
vanstee
141
7.6k
A designer walks into a library…
pauljervisheath
211
24k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.6k
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