What Continuous Delivery Means for Version Control
-
Upload
perforce -
Category
Technology
-
view
1.823 -
download
1
description
Transcript of What Continuous Delivery Means for Version Control
![Page 1: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/1.jpg)
@jezhumble 10 september 2014
continuous delivery
![Page 2: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/2.jpg)
scrum-
fall
water-
![Page 3: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/3.jpg)
s
![Page 4: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/4.jpg)
what is continuous delivery?
reduce the cost, time, and risk of delivering incremental changes to users while improving quality
![Page 5: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/5.jpg)
production-ready software
fast, automated feedback on the production readiness of your applications every time there is a change — to code, infrastructure, or configuration
![Page 6: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/6.jpg)
architecture
patterns and practices
collaboration
continuous delivery
![Page 7: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/7.jpg)
configuration management
continuous integration
automated testing
ingredients
![Page 8: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/8.jpg)
Mainline Server
Develop
Build
Build
pull
Local Workstation
Buildpush
✔Done!
© @martinfowler
![Page 9: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/9.jpg)
Mainline Server
Develop
Build
Build
pull
Local Workstation
Buildpush
✔Done!
Everyone Commits To
the Mainline Every Day
© @martinfowler
![Page 10: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/10.jpg)
P1 P2
G2G1
B1
B1
B1
P1-2
G1-2
G3 G4
P4
B2
P5
G5 G6
B2
P3-4
G3
B2
P3
Professor Plum
Reverend Green
Mainline
Feature Branching
© @martinfowler
![Page 11: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/11.jpg)
P1 P2
G2G1
B1
B1
B1
P1-2
G1-2
G3 G4
P4
B2
P5
G5 G6
B2
P3-4
G3
B2
P3
Professor Plum
Reverend Green
Mainline
G1-6
P1-5
P1-5
G1-6
Feature Branching
© @martinfowler
![Page 12: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/12.jpg)
P1 P2
G2G1
B1
B1
B1
P1-2
G1-2
G3 G4
P4
B2
P5
G5 G6
B2
P3-4
G3
B2
P3
Professor Plum
Reverend Green
Mainline
G1-6
P1-5
P1-5
G1-6
Feature Branching
© @martinfowler
![Page 13: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/13.jpg)
P1 P2
G2G1
B1
B1
B1
P1-2
G1-2
G3 G4
P4
B2
P5
G5 G6
B2
P3-4
G3
B2
P3
Professor Plum
Reverend Green
Mainline
G1-6
P1-5
P1-5
G1-6
Feature Branching
© @martinfowler
![Page 14: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/14.jpg)
P1 P2
G2 G3G1 G4
P3 P4 P5
G5 G6
B1 B2
G1
G1
P1
P1B1
P2
B1
P1-2
G2
G2
P3
G2
P3
B2
P4
B2
G3
P3G3
G3
P4
P4 P5
P4-5
G4
G4 G5 G6
P2
Professor Plum
Reverend Green
Mainline
Continuous Integration
© @martinfowler
![Page 15: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/15.jpg)
P1 P2
G2 G3G1 G4
P3 P4 P5
G5 G6
B1 B2
G1
G1
P1
P1B1
P2
B1
P1-2
G2
G2
P3
G2
P3
B2
P4
B2
G3
P3G3
G3
P4
P4 P5
P4-5
G4
G4 G5 G6
P2
Professor Plum
Reverend Green
Mainline
P1 P2
G2G1
B1
B1
B1
P1-2
G1-2
G3 G4
P4
B2
P5
G5 G6
B2
P3-4
G3
B2
P3
Professor Plum
Reverend Green
Mainline
G1-6
P1-5
P1-5
G1-6
Continuous Integration
Feature Branch
© @martinfowler
![Page 16: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/16.jpg)
Continuous Integration
Feature Branch
© @martinfowler
![Page 17: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/17.jpg)
Feature Branch
Release Branch
Experimental Branch
© @martinfowler
![Page 18: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/18.jpg)
Grand Prize Fight
© @martinfowler
![Page 19: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/19.jpg)
BAM
Feature Branching
Continuous Integration
Big Scary Merge
© @martinfowler
![Page 20: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/20.jpg)
P1 P2
G2 G3G1 G4
P3 P4 P5
G5 G6
B1 B2
G1
G1
P1
P1B1
P2
B1
P1-2
G2
G2
P3
G2
P3
B2
P4
B2
G3
P3G3
G3
P4
P4 P5
P4-5
G4
G4 G5 G6
P2
Professor Plum
Reverend Green
Mainline
P1 P2
G2G1
B1
B1
B1
P1-2
G1-2
G3 G4
P4
B2
P5
G5 G6
B2
P3-4
G3
B2
P3
Professor Plum
Reverend Green
Mainline
G1-6
P1-5
P1-5
G1-6
Continuous Integration
Feature Branch
© @martinfowler
![Page 21: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/21.jpg)
BAM
Feature Branching
Continuous Integration
Big Scary Merge
BIFF Untrusted Contributers
© @martinfowler
![Page 22: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/22.jpg)
BAM
Feature Branching
Continuous Integration
Big Scary Merge
BIFF Untrusted Contributers
POW !
In-progress features
© @martinfowler
![Page 23: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/23.jpg)
[featureToggles]wobblyFoobars: trueflightyForkHandles: false
Config File
<toggle name=wobblyFoobars> ... various UI elements</toggle>
some.jsp
forkHandle = (featureConfig.isOn(‘flightlyForkHandles)) ? new FlightyForkHander(aCandle) : new ForkHandler(aCandle)
other.java
Feature Toggles
© @martinfowler
![Page 24: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/24.jpg)
Branch by Abstraction
© @martinfowler
![Page 25: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/25.jpg)
Application
New!Library
Library
© @martinfowler
![Page 26: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/26.jpg)
Application
New!Library
Library
Interface implements
© @martinfowler
![Page 27: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/27.jpg)
Application
New!Library
Library
Interface implements
© @martinfowler
![Page 28: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/28.jpg)
Application
New!Library
Library
Interface implements
© @martinfowler
![Page 29: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/29.jpg)
Application
New!Library
Interface implements
© @martinfowler
![Page 30: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/30.jpg)
BAM
Feature Branching
Continuous Integration
Big Scary Merge
BIFF Untrusted Contributors
POW !
In-progress features
KA-POW!
No Refactoring
© @martinfowler
![Page 31: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/31.jpg)
P1 P2
G2 G3G1 G4
P3 P4 P5
G5 G6
B1 B2
G1
G1
P1
P1B1
P2
B1
P1-2
G2
G2
P3
G2
P3
B2
P4
B2
G3
P3G3
G3
P4
P4 P5
P4-5
G4
G4 G5 G6
P2
Professor Plum
Reverend Green
Mainline
P1 P2
G2G1
B1
B1
B1
P1-2
G1-2
G3 G4
P4
B2
P5
G5 G6
B2
P3-4
G3
B2
P3
Professor Plum
Reverend Green
Mainline
G1-6
P1-5
P1-5
G1-6
Continuous Integration
Feature Branch
© @martinfowler
![Page 32: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/32.jpg)
BAM
Feature Branching
Continuous Integration
Big Scary Merge
BIFF Untrusted Contributors
POW !
No Refactoring
KA-POW!
In-progress features
© @martinfowler
![Page 33: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/33.jpg)
continuous integration
Jason Leyba | http://www.infoq.com/presentations/google-test-automation
![Page 34: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/34.jpg)
![Page 35: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/35.jpg)
build quality in
“Cease dependence on mass inspection to achieve quality. Improve the process and build quality into the product in the first place” !
W. Edwards Deming
![Page 36: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/36.jpg)
different kinds of testing
Functional acceptance tests
ShowcasesUsability testing
Exploratory testing
Unit testsIntegration tests
System tests
Non-functional acceptance tests
(performance, scaling, ...)
Business facing
Technology facing
Critiq
ue p
roje
ct
Support
pro
gra
mm
ing
AUTOMATED
AUTOMATED
MANUAL
MANUAL / AUTOMATED
Diagram invented by Brian Marick
![Page 37: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/37.jpg)
visibility
an automated implementation of your system’s build, deploy, test, release process
control
feedback
deployment pipeline
![Page 38: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/38.jpg)
deployment pipeline
Delivery team Version control Build & unit tests
Automated acceptance tests
User acceptance tests
Release
Check in
Feedback
Trigger
Check in
Feedback
Trigger
Trigger
Check inTrigger
Trigger
ApprovalApproval
Feedback
Feedback
FeedbackFeedback
![Page 39: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/39.jpg)
infrastructure as code
![Page 40: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/40.jpg)
high performing IT is a competitive advantage
“Firms with high-performing IT organizations were twice as likely to exceed their profitability, market share and productivity goals.”
http://bit.ly/2014-devops-report
![Page 41: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/41.jpg)
lead time
“How long would it take your organization to deploy a change that involved just one single line of code? Do you do this on a repeatable, reliable basis?”
Mary and Tom Poppendieck, Implementing Lean Software Development, p59.
![Page 42: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/42.jpg)
time to restore service
http://martinfowler.com/bliki/PhoenixServer.html
![Page 43: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/43.jpg)
highest correlation with IT performance
!
• “Our app configurations are in a version control system” • “Our system configurations are in a version control system” • “Our app code is in a version control system” • “We get failure alerts from logging and monitoring systems” • “Developers merge their code into trunk daily” • “When development and operations teams interact, the outcome is
generally win/win.” • “Developers break up large features into small, incremental changes.”
![Page 44: What Continuous Delivery Means for Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051817/547b9cb9b4af9fa0158b4f25/html5/thumbnails/44.jpg)
questions@jezhumble | [email protected] http://continuousdelivery.com/
!
© 2014 Chef, Inc. & ThoughtWorks, Inc.