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
Continuous Integration, fast builds and Flot
Search
Chris Bushell
February 03, 2010
Programming
2
54
Continuous Integration, fast builds and Flot
Prepared for the Melbourne Patters Group
Chris Bushell
February 03, 2010
Tweet
Share
More Decks by Chris Bushell
See All by Chris Bushell
Test Automation for Packaged Systems: Yes You Can!
cbushell
0
49
Introduction to Pair Programming
cbushell
1
100
An Introduction to BDD
cbushell
5
160
An Introduction to HTTP
cbushell
2
120
Agile Test Automation
cbushell
2
170
Working Effectively With Legacy Code
cbushell
4
240
Jasmine, BDD for JavaScript
cbushell
1
110
Branches Are For Trees. How to Develop Software Without Them
cbushell
1
91
State Pattern From GoF
cbushell
1
55
Other Decks in Programming
See All in Programming
MetricKitで予期せぬ終了を検知する話 / Detect unexpected termination with MetricKit
nekowen
1
200
StoreKit2によるiOSのアプリ内課金のリニューアル
kangnux
0
120
dbtのドメイン分割による データ基盤の改善とDigdagとの連携
sakama
0
440
効率化に挑戦してみたらモバイル開発が少し快適になった話
ryunakayama
0
140
Fragment Composition of GraphQL
quramy
13
1.5k
Introducing Kotlin Multiplatform in an existing mobile app - Workshop Edition | AndroidMakers Paris
prof18
0
150
FigmaとPHPで作る1ミリたりとも表示崩れしない最強の帳票印刷ソリューション
ttskch
43
19k
冗長なエラーログを削減し、スタックトレースを手に入れる / Reducing Verbose Error Logs and Obtaining Stack Traces
upamune
0
1k
Try creating your own orderedmap
kazamori
1
190
スクラムガイドのスプリントレトロスペクティブを改めて読みかえしてみた / Re-reading the Sprint Retrospective Section in the Scrum Guide
mackey0225
3
480
Tailwind CSSを本気でカスタマイズする方法
fsubal
14
5.5k
Ruby Function Composition
bkuhlmann
1
340
Featured
See All Featured
Fireside Chat
paigeccino
22
2.6k
5 minutes of I Can Smell Your CMS
philhawksworth
199
19k
How To Stay Up To Date on Web Technology
chriscoyier
782
250k
What's in a price? How to price your products and services
michaelherold
238
11k
Unsuck your backbone
ammeep
663
57k
Faster Mobile Websites
deanohume
300
30k
Web Components: a chance to create the future
zenorocha
306
41k
Git: the NoSQL Database
bkeepers
PRO
423
63k
Building Effective Engineering Teams - LeadDev
addyosmani
31
1.9k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
33
6k
Done Done
chrislema
178
15k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
Transcript
Con$nuous Integra$on, Fast Builds and Flot Chris Bushell
-‐ Melbourne Pa9erns Group February 3rd 2010
Tradi$onal SoCware Development • Waterfall • Development happens
independently, in parallel streams • Integra$on phase
Integra$on Is Painful • Time consuming • Unpredictable
Typical SoCware Development
Con$nuous Integra$on • Single source code repository •
Automated build • Automated tests • Frequent commits
CI In Prac$ce – Check Out Time
CI In Prac$ce – Write Code Time
CI In Prac$ce – Run Build Time
CI In Prac$ce – Commit Time
CI In Prac$ce Time
CI In Prac$ce – Con$nuous Build Time
Encourage Frequent Check-‐Ins • Integra$ng small changes is much
less painful and $me consuming than integra$ng large changes
Problem -‐ Builds Can Become Slow • More code
= more tests = longer build $me
A Fast Build Is Essen$al • Idle developers
• Context switching • Unable to deliver new features • I get bored easily
Monitoring Build Time • Need to measure how long
your build takes
Con$nuous Integra$on Server • API allows us to access
historic build $me informa$on
Flot • Demo
Speeding Up A Slow Build • Split code base
Speeding Up A Slow Build • Hardware •
SSD
Speeding Up A Slow Build • Think about how
to test • Unit tests are fast • Func$onal tes$ng can be slow
Speeding Up A Slow Build • Isola$on from slow
dependencies • Impersonator pa9ern
Speeding Up A Slow Build • Parallelize build
– Be careful with shared dependencies
Speeding Up A Slow Build • Choose a light
weight development container
Speeding Up A Slow Build • Sam Newman’s Build
Pa9erns – Check In Gate – Fish Eye Test Suite – Build Time Limit