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
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
640
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
2k
RubyData and Rails
mrkn
0
3.5k
Tensor and Arrow
mrkn
0
1.1k
Other Decks in Technology
See All in Technology
Sigmaで作る業務アプリ
kazushiro_honma
0
110
TinyGo 開発サイクルを高速化する:Go で作るエミュレータ入門
zozotech
PRO
1
600
Multica × 長期記憶:40個のミニプロジェクト管理
eiei114
1
240
Amazon S3 Tablesに全部任せてみた結果——コンパクション/スナップショット管理は本当に手放せるか
shigeruoda
1
470
DEFCON_CHV_CTF_Write-up.pdf
bata_24
0
140
Webとヘルスデータ
yukukotani
1
370
全員がプロダクトへ向き合う組織を持続成長させるために——組織づくりのフライホイールと4象限 / The Flywheel Model and Four Quadrants for Organizational Design
hiro_torii
4
960
AIネイティブプロダクトで顧客価値を最大化するプロダクトエンジニアとFDEの協働
righttouch
PRO
0
230
Screen Lens - 今見てる画面を翻訳する
komagata
0
240
なぜSRE・セキュリティは評価されないのか?守りの組織を事業成長エンジンに変えた実践
cscengineer
PRO
3
2.4k
module Synths; end
asonas
1
130
10分で知る最近のOmarchy
komagata
0
250
Featured
See All Featured
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
930
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
240
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
400
Become a Pro
speakerdeck
PRO
31
6.2k
Unsuck your backbone
ammeep
672
58k
Building an army of robots
kneath
306
46k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
A Tale of Four Properties
chriscoyier
163
24k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
510
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