continuous integration, fast builds and flot

Post on 28-Jun-2015

242 Views

Category:

Business

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Continuous Integration, Fast Builds And Flot, By Chris Bushell, February 3rd 2010

TRANSCRIPT

Continuous Integration, Fast Builds and Flot

Chris Bushell - Melbourne Patterns Group February 3rd 2010

Traditional Software Development

• Waterfall• Development happens independently, in

parallel streams• Integration phase

Integration Is Painful

• Time consuming• Unpredictable

Typical Software Development

Continuous Integration

• Single source code repository• Automated build• Automated tests• Frequent commits

CI In Practice – Check OutTi

me

CI In Practice – Write CodeTi

me

CI In Practice – Run BuildTi

me

CI In Practice – CommitTi

me

CI In PracticeTi

me

CI In Practice – Continuous BuildTi

me

Encourage Frequent Check-Ins

• Integrating small changes is much less painful and time consuming than integrating large changes

Problem - Builds Can Become Slow

• More code = more tests = longer build time

A Fast Build Is Essential

• Idle developers• Context switching• Unable to deliver new features• I get bored easily

Monitoring Build Time

• Need to measure how long your build takes

Continuous Integration Server

• API allows us to access historic build time information

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• Functional testing can be slow

Speeding Up A Slow Build

• Isolation from slow dependencies• Impersonator pattern

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 Patterns– Check In Gate– Fish Eye Test Suite– Build Time Limit

top related