Upload
thoughtworks
View
1.730
Download
1
Tags:
Embed Size (px)
Citation preview
http://thoughtworks-studios.com/
continuous delivery@jezhumbleBerlin, 4 october 2012
Tuesday, October 9, 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"
Tuesday, October 9, 12
social
disrupting traditional businesses
http://code.flickr.com/
Tuesday, October 9, 12
releasing frequently
1. build the right thing
Eric Ries, “The Lean Startup” http://bit.ly/8ZoX5F
Customerdevelopment
Agile productdevelopment
Tuesday, October 9, 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
Tuesday, October 9, 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
Tuesday, October 9, 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.
Tuesday, October 9, 12
releasing frequently
1. build the right thing2. reduce risk of release
John Allspaw: “Ops Metametrics” http://slidesha.re/dsSZIr
Tuesday, October 9, 12
optimize for mtrs
Tuesday, October 9, 12
optimize for mtrs
MTBF MTRS
John Allspaw: “Building Resilience in Web Development and Operations” http://www.usievents.com/en/conferences/8-paris-usi-2011/sessions/968-john-allspaw
Tuesday, October 9, 12
releasing frequently
1. build the right thing2. reduce risk of release3. real project progress
Tuesday, October 9, 12
agile manifesto
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software
Tuesday, October 9, 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
Tuesday, October 9, 12
So"ware always production ready
Releases tied to business needs, not operational constraints
continuous delivery
Tuesday, October 9, 12
automation
patterns and practices
collaboration
continuous delivery
Tuesday, October 9, 12
con!guration management
continuous integration
automated testing
ingredients
Tuesday, October 9, 12
Mainline Server
Develop
Build
Build
pull
Local Workstation
Buildpush
✔Done!
Tuesday, October 9, 12
Mainline Server
Develop
Build
Build
pull
Local Workstation
Buildpush
✔Done!
Everyone Commits
To the Mainline
Every Day
Tuesday, October 9, 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 DemingTuesday, October 9, 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
Tuesday, October 9, 12
visibility
an automated implementation of your system’s build, deploy, test, release process
control
feedback
deployment pipeline
Tuesday, October 9, 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
Tuesday, October 9, 12
deployment pipeline
Tuesday, October 9, 12
deployment pipeline
Tuesday, October 9, 12
automate provisioning and deployment
ensure devs, testers and ops collaborate throughout
reducing release risk
Tuesday, October 9, 12
incrementalism
devops
decoupling deployment and release
reducing release risk
Tuesday, October 9, 12
cultureautomation
measurementsharing
devops
Tuesday, October 9, 12
low risk releases are incremental
blue-green deployments
canary releases
dark launching
production immune system
feature toggles
Tuesday, October 9, 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
Tuesday, October 9, 12
blue-green deployments
Tuesday, October 9, 12
router
web server
app server
DB server
Tuesday, October 9, 12
router
v1.1 v1.1 v1.1
web server
app server
DB server
Tuesday, October 9, 12
router
v1.1 v1.1 v1.1
web server
app server
DB server
v1.2 v1.2 v1.2
Tuesday, October 9, 12
router
v1.1 v1.1 v1.1
web server
app server
DB server
v1.2 v1.2 v1.2
Tuesday, October 9, 12
Canary Releasing
Tuesday, October 9, 12
Tuesday, October 9, 12
Tuesday, October 9, 12
Reduce risk of release
Multi-variant testing
Performance testing
canary releasing
Tuesday, October 9, 12
immune system
what if someone replaced your “buy” button with spacer.gif?
T cells http://www.flickr.com/photos/gehealthcare/3326186490/Tuesday, October 9, 12
release != deployment
Tuesday, October 9, 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
Tuesday, October 9, 12
Dark Launching
Tuesday, October 9, 12
Tuesday, October 9, 12
Tuesday, October 9, 12
segregation of duties
risk management
SOX, ITIL, COBIT
auditing and compliance
change management
enterprise governance
Tuesday, October 9, 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
Tuesday, October 9, 12
http://thoughtworks-studios.com/
questions
© 2012 ThoughtWorks, Inc.
@jezhumble | [email protected]://continuousdelivery.com/
ThoughtWorks is hiring!http://jobs.thoughtworks.com/
Australia | Brazil | Canada | ChinaGermany | India | Singapore | South AfricaUganda | UK | USA
Tuesday, October 9, 12