View
8
Download
0
Category
Preview:
Citation preview
http://thoughtworks-studios.com/
Continuous Delivery@jezhumble#Agile2012, 15 August 2012
Thursday, August 16, 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"
Thursday, August 16, 12
web 2.0
disrupting traditional businesses
http://code.flickr.com/
Thursday, August 16, 12
releasing frequently
build the right thingCustomer
developent
Agile productdevelopment
Eric Ries, “The Lean Startup” http://bit.ly/8ZoX5F
Thursday, August 16, 12
innovateYou can't just ask
customers what they want and then
try to give that to them.
By the time you get it built, they'll want
something new.Steve Jobs
Thursday, August 16, 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
Thursday, August 16, 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.
Thursday, August 16, 12
releasing frequently
build the right thingreduce risk of release
John Allspaw: “Ops Metametrics” http://slidesha.re/dsSZIr
Thursday, August 16, 12
optimize for mtrs
Thursday, August 16, 12
optimize for mtrs
MTBF MTRS
Thursday, August 16, 12
releasing frequently
build the right thingreduce risk of releasereal project progress
Thursday, August 16, 12
agile manifesto
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software
Thursday, August 16, 12
production-ready so"ware
Fast, automated feedback on the production readiness of your applications every time there is a change - to code, infrastructure, or configuration
Thursday, August 16, 12
So!ware always production ready
Releases tied to business needs, not operational constraints
continuous delivery
Thursday, August 16, 12
automation
patterns and practices
collaboration
continuous delivery
Thursday, August 16, 12
con"guration management
continuous integration
automated testing
ingredients
Thursday, August 16, 12
Mainline Server
Develop
Build
Build
pull
Local Workstation
Buildpush
✔Done!
Thursday, August 16, 12
Mainline Server
Develop
Build
Build
pull
Local Workstation
Buildpush
✔Done!
Everyone Commits
To the Mainline
Every Day
Thursday, August 16, 12
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 DemingThursday, August 16, 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
Thursday, August 16, 12
visibility
an automated implementation of your system’s build, deploy, test, release process
control
feedback
deployment pipeline
Thursday, August 16, 12
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
Thursday, August 16, 12
deployment pipeline
Thursday, August 16, 12
deployment pipeline
Thursday, August 16, 12
automate provisioning and deployment
ensure devs, testers and ops collaborate throughout
reducing release risk
Thursday, August 16, 12
incrementalism
devops
decoupling deployment and release
reducing release risk
Thursday, August 16, 12
cultureautomation
measurementsharing
devops
Thursday, August 16, 12
low risk releases are incremental
blue-green deployments
canary releases
dark launching
production immune system
feature toggles
Thursday, August 16, 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
Thursday, August 16, 12
blue-green deployments
Thursday, August 16, 12
router
web server
app server
DB server
Thursday, August 16, 12
router
v1.1 v1.1 v1.1
web server
app server
DB server
Thursday, August 16, 12
router
v1.1 v1.1 v1.1
web server
app server
DB server
v1.2 v1.2 v1.2
Thursday, August 16, 12
router
v1.1 v1.1 v1.1
web server
app server
DB server
v1.2 v1.2 v1.2
Thursday, August 16, 12
Canary Releasing
Thursday, August 16, 12
Thursday, August 16, 12
Thursday, August 16, 12
Reduce risk of release
Multi-variant testing
Performance testing
canary releasing
Thursday, August 16, 12
immune system
what if someone replaced your “buy” button with spacer.gif?
T cells http://www.flickr.com/photos/gehealthcare/3326186490/Thursday, August 16, 12
release != deployment
Thursday, August 16, 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
Thursday, August 16, 12
Dark Launching
Thursday, August 16, 12
Thursday, August 16, 12
Thursday, August 16, 12
segregation of duties
risk management
SOX, ITIL, COBIT
auditing and compliance
change management
enterprise governance
Thursday, August 16, 12
Make it easy for everyone to see what’s happening
Get everyone together at the beginning
Keep meeting
Continuous improvement (kaizen)
people are the key
Thursday, August 16, 12
http://thoughtworks-studios.com/
questionsjez@thoughtworks.comhttp://continuousdelivery.com/
@jezhumble #continuousdelivery
© 2011 ThoughtWorks, Inc.
Thursday, August 16, 12
Recommended