Date post: | 02-Dec-2014 |
Category: |
Technology |
Upload: | thoughtworks |
View: | 1,248 times |
Download: | 1 times |
HOW DO YOU IMPLEMENT CONTINUOUS DELIVERY?
Part 2: Code Management
Share this ebook.
PERSPECTIVES
HOW DO I MANAGE MY CODEBASE?
2
Reliable delivery of software
Faster time to market
How do different development streams…
Trunk
Team Pink
Team Green
How do I manage my codebase?
Reliable delivery of software
Faster time to market
How do different development streams…integrate…
Trunk
Merging Team Pink’sRepository
Branch
Merging Team Green’s
Repository Branch
1 1 1 111
2 2 2 2 2
3 3 3
4 4
5
1
2
3
4
1
2
3
1
2
1
How do I manage my codebase?
Reliable delivery of software
Faster time to market
Without the merge conflicts of feature-branching?
Trunk
1 1 1 111
2 2 2 2 2
3 3 3
4 4
5
1
2
3
4
1
2
3
1
2
1
2
3
4
1 123
4 5
How do I manage my codebase?
Reliable delivery of software
By Continuously Integrating
Trunk
Faster time to market
3 4 5
2
1
1 2 3 4
2 3 41 1
2
3 4 5
How do I manage my codebase?
Some key CI practicesHow do I manage my codebase?
Everyone commits to trunk at least daily
Automated tests are run for every commit
Avoid branches
http://martinfowler.com/articles/continuousIntegration.html
What about large codebases?How do I manage my codebase?
What about large codebases?How do I manage my codebase? Modularizati
onMicro-services
HOW DO I RELEASEINCOMPLETE WORK?
10
Using Feature TogglesHow do I release incomplete work? [featureToggles]
wobblyFoobars: trueflightyForkHandles: false
<toggle name=wobblyFoobars> ... various UI elements</toggle>
forkHandle = (featureConfig.isOn(‘flightlyForkHandles)) ? new FlightyForkHander(aCandle) : new ForkHandler(aCandle)
Config File
some.jsp
other.java
Using Branch by AbstractionHow do I release incomplete work?
Application
Library
New Library
http://paulhammant.com/blog/branch_by_abstraction.html/
Using Branch by AbstractionHow do I release incomplete work?
Application
Library
New Library
Interface
Using Branch by AbstractionHow do I release incomplete work?
Application
Library
New Library
Interface Implements
Using Branch by AbstractionHow do I release incomplete work?
Application
New Library
Interface Implements
Using Branch by AbstractionHow do I release incomplete work?
Application
New Library
ALL ABOUT PIPELINES
17
Stay tuned for Part 3…
LEARN MORE
Deploy a great product faster.Agile teams deliver working software early and often.Go automates and streamlines the build-test-release cycle for worry-free, continuous delivery of your product.
Share this ebook.
Visit our Continuous Delivery Channel for more posts like this.