continuous delivery - eclipsecon france2018 · continuous delivery tim brown eclipsecon 2012...
TRANSCRIPT
http://thoughtworks.com/
Continuous DeliveryTim BrownEclipseCon 2012
[email protected]@tpbrown
1Wednesday, March 28, 12
agile 101
Iteration 0 1 2 3 4
Analysis + Design
Development
Testing + Showcase
Integration + QA Release and operation
Customer
Centralized QA IT Operations
"Agile" team
The "last mile"Iteration 0 1 2 3 4
Analysis + Design
Development
Testing + Showcase
Integration + QA Release and operation
Customer
Centralized QA IT Operations
"Agile" team
The "last mile"
2Wednesday, March 28, 12
agile 101
Iteration 0 1 2 3 4
Analysis + Design
Development
Testing + Showcase
Integration + QA Release and operation
Customer
Centralized QA IT Operations
"Agile" team
The "last mile"
3Wednesday, March 28, 12
web 2.0
disrupting traditional businesses
http://code.flickr.com/
4Wednesday, March 28, 12
releasing frequently
feedback from users
5Wednesday, March 28, 12
innovate
If I had asked people what they
wanted, they would have said
faster horses.
6Wednesday, March 28, 12
scienti!c method
create hypothesis
deliver minimumviable product
get feedback
(repeat)Eric Ries, “The Lean Startup” http://bit.ly/8ZoX5F
Ideas
CodeData
Build
Measure
Learn
7Wednesday, March 28, 12
releasing frequently
feedback from usersreduce risk of release
John Allspaw: “Ops Metametrics” http://slidesha.re/dsSZIr
8Wednesday, March 28, 12
releasing frequently
feedback from usersreduce risk of releasereal project progress
9Wednesday, March 28, 12
Fast, automated feedback on the production readiness of your applications every time there is a change - to code, infrastructure, or con!guration
10Wednesday, March 28, 12
So"ware always production ready
Releases tied to business needs, not operational constraints
continuous delivery
Customer
Delivery teamConstant flow of new features into production
11Wednesday, March 28, 12
automation
patterns and practices
collaboration
continuous delivery
12Wednesday, March 28, 12
con!guration management
continuous integration
automated testing
ingredients
13Wednesday, March 28, 12
visibility
an automated implementation of your end-to-end so"ware delivery process -- from source to live
control
feedback
deployment pipeline
14Wednesday, March 28, 12
deployment pipelineDelivery team Version control Build & unit
testsAutomated
acceptance testsUser acceptance
testsRelease
Check in
Feedback
Trigger
Check in
Feedback
Trigger
Trigger
Check inTrigger
Trigger
ApprovalApproval
Feedback
Feedback
FeedbackFeedback
15Wednesday, March 28, 12
build quality in“Cease dependence on mass inspection to achieve quality. Improve the process and build quality into the product in the !rst place”
W. Edwards Deming
16Wednesday, March 28, 12
di#erent 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
17Wednesday, March 28, 12
deployment pipeline
18Wednesday, March 28, 12
ask this question
“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.
19Wednesday, March 28, 12
automate provisioning and deployment
ensure devs, testers and ops collaborate throughout
reducing release risk
20Wednesday, March 28, 12
incrementalism
devops
decoupling deployment and release
reducing release risk
21Wednesday, March 28, 12
a cultural movement that patterns, practices, and tools
have sprung out of
devops
- automation- measurement- sharing
22Wednesday, March 28, 12
low risk releases are incremental
blue-green deployments
canary releases
dark launching
production immune system
feature toggles
23Wednesday, March 28, 12
STATIC CONTENT
/static/1.1
/static/1.0
DEPENDENT SERVICE
1.0 1.1
Abstraction layer Abstraction layer
APPLICATION
Database
Router /Load balancer
Interwebs
24Wednesday, March 28, 12
blue-green deployments
25Wednesday, March 28, 12
router
web server
app server
DB server
26Wednesday, March 28, 12
router
v1.1 v1.1 v1.1
web server
app server
DB server
27Wednesday, March 28, 12
router
v1.1 v1.1 v1.1
web server
app server
DB server
v1.2 v1.2 v1.2
28Wednesday, March 28, 12
router
v1.1 v1.1 v1.1
web server
app server
DB server
v1.2 v1.2 v1.2
29Wednesday, March 28, 12
decouple release from deployment
30Wednesday, March 28, 12
feature toggles
[featureToggles]wobblyFoobars: trueflightyForkHandles: false
Config File
<?if ($wobblyFoobars) {?> ... various UI elements<?}?>
some.php
$fork_handle = ($featureConfig->isOn(‘flightlyForkHandles)) ? new flightyForkHander(aCandle) : new forkHandler(aCandle);
other.php
Stolen from Martin Fowler http://martinfowler.com/bliki/FeatureToggle.html
31Wednesday, March 28, 12
what about my database?!
32Wednesday, March 28, 12
Architectural choices- Expand/Contract- Event Sourcing- CQRS- NoSQL
Script DB changes delta by delta
Automate these changes using DB Deploy pattern
Managing Databases
33Wednesday, March 28, 12
Dark Launching
34Wednesday, March 28, 12
35Wednesday, March 28, 12
36Wednesday, March 28, 12
Make it easy for everyone to see what’s happening
Get everyone together at the beginning
Keep meeting
Continuous improvement
people are the key
37Wednesday, March 28, 12
Feedback [email protected]
Bright? Passionate about world-changing software? Want to do something amazing? http://join.thoughtworks.com/
thank you!
based on Dave & Jez’s award-winning book
38Wednesday, March 28, 12