Continuous Delivery
description
Transcript of Continuous Delivery
![Page 1: Continuous Delivery](https://reader033.fdocuments.in/reader033/viewer/2022042721/56d6c0951a28ab30169af91d/html5/thumbnails/1.jpg)
Continuous Delivery
Jez Humble, ThoughtWorks Studios@jezhumble #continuousdeliveryDevOpsDays, Hamburg
![Page 2: Continuous Delivery](https://reader033.fdocuments.in/reader033/viewer/2022042721/56d6c0951a28ab30169af91d/html5/thumbnails/2.jpg)
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"
![Page 3: Continuous Delivery](https://reader033.fdocuments.in/reader033/viewer/2022042721/56d6c0951a28ab30169af91d/html5/thumbnails/3.jpg)
web 2.0
disrupting traditional businesses
http://code.flickr.com/
![Page 4: Continuous Delivery](https://reader033.fdocuments.in/reader033/viewer/2022042721/56d6c0951a28ab30169af91d/html5/thumbnails/4.jpg)
releasing frequently
feedback from usersCustomer
developent
Agile productdevelopment
Eric Ries, “The Lean Startup” http://bit.ly/8ZoX5F
![Page 5: Continuous Delivery](https://reader033.fdocuments.in/reader033/viewer/2022042721/56d6c0951a28ab30169af91d/html5/thumbnails/5.jpg)
releasing frequently
feedback from usersreduce risk of release
John Allspaw: “Ops Metametrics” http://slidesha.re/dsSZIr
![Page 6: Continuous Delivery](https://reader033.fdocuments.in/reader033/viewer/2022042721/56d6c0951a28ab30169af91d/html5/thumbnails/6.jpg)
releasing frequently
feedback from usersreduce risk of releasereal project progress
![Page 7: Continuous Delivery](https://reader033.fdocuments.in/reader033/viewer/2022042721/56d6c0951a28ab30169af91d/html5/thumbnails/7.jpg)
agile manifesto
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software
![Page 8: Continuous Delivery](https://reader033.fdocuments.in/reader033/viewer/2022042721/56d6c0951a28ab30169af91d/html5/thumbnails/8.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 9: Continuous Delivery](https://reader033.fdocuments.in/reader033/viewer/2022042721/56d6c0951a28ab30169af91d/html5/thumbnails/9.jpg)
Software always production ready
Releases tied to business needs, not operational constraints
continuous delivery
Customer
Delivery teamConstant flow of new features into production
![Page 10: Continuous Delivery](https://reader033.fdocuments.in/reader033/viewer/2022042721/56d6c0951a28ab30169af91d/html5/thumbnails/10.jpg)
Completely cross-functional teams
Business units act as VCs
Products, not projects
BUT...
Works great with many small, distributed teams and RESTful architecture
enterprise lean startups
![Page 11: Continuous Delivery](https://reader033.fdocuments.in/reader033/viewer/2022042721/56d6c0951a28ab30169af91d/html5/thumbnails/11.jpg)
value stream mapping
Product opportunity assessment
Product discovery Development Final testing
and approval ReleaseProduct
planning and estimation
Elapsed time
Value-added time3 days 1 week 10 days 7 weeks 1 week 2
hours
1 week 10 days 3 days 5 days 2 days
![Page 12: Continuous Delivery](https://reader033.fdocuments.in/reader033/viewer/2022042721/56d6c0951a28ab30169af91d/html5/thumbnails/12.jpg)
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
![Page 13: Continuous Delivery](https://reader033.fdocuments.in/reader033/viewer/2022042721/56d6c0951a28ab30169af91d/html5/thumbnails/13.jpg)
deployment pipeline
![Page 14: Continuous Delivery](https://reader033.fdocuments.in/reader033/viewer/2022042721/56d6c0951a28ab30169af91d/html5/thumbnails/14.jpg)
deployment pipeline
![Page 15: Continuous Delivery](https://reader033.fdocuments.in/reader033/viewer/2022042721/56d6c0951a28ab30169af91d/html5/thumbnails/15.jpg)
principles
• create a repeatable, reliable process for releasing software
• automate almost everything
• keep everything in version control
• if it hurts, do it more often, and bring the pain forward
• build quality in
• done means released
• everybody is responsible for delivery
• continuous improvement
![Page 16: Continuous Delivery](https://reader033.fdocuments.in/reader033/viewer/2022042721/56d6c0951a28ab30169af91d/html5/thumbnails/16.jpg)
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?”
• What gets in the way of getting software out of the door?
Mary and Tom Poppendieck, Implementing Lean Software Development, p59.
![Page 17: Continuous Delivery](https://reader033.fdocuments.in/reader033/viewer/2022042721/56d6c0951a28ab30169af91d/html5/thumbnails/17.jpg)
smoke test your deployments
only build your binaries once
deploy the same way to every environment
if anything fails, stop the line
keep your environments similar
practices
![Page 18: Continuous Delivery](https://reader033.fdocuments.in/reader033/viewer/2022042721/56d6c0951a28ab30169af91d/html5/thumbnails/18.jpg)
everybody checks in to mainline
use branch by abstraction for architectural change
use feature bits to switch off incomplete features
continuous integrationP1 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
Diagram invented by Martin Fowler
![Page 19: Continuous Delivery](https://reader033.fdocuments.in/reader033/viewer/2022042721/56d6c0951a28ab30169af91d/html5/thumbnails/19.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 20: Continuous Delivery](https://reader033.fdocuments.in/reader033/viewer/2022042721/56d6c0951a28ab30169af91d/html5/thumbnails/20.jpg)
canary releasing
![Page 21: Continuous Delivery](https://reader033.fdocuments.in/reader033/viewer/2022042721/56d6c0951a28ab30169af91d/html5/thumbnails/21.jpg)
data migration
![Page 22: Continuous Delivery](https://reader033.fdocuments.in/reader033/viewer/2022042721/56d6c0951a28ab30169af91d/html5/thumbnails/22.jpg)
Auditing - see who does what
Visibility and control over locking down
Compliance - automation over documentation
Make it easy to remediate outages
objections
![Page 23: Continuous Delivery](https://reader033.fdocuments.in/reader033/viewer/2022042721/56d6c0951a28ab30169af91d/html5/thumbnails/23.jpg)
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
![Page 24: Continuous Delivery](https://reader033.fdocuments.in/reader033/viewer/2022042721/56d6c0951a28ab30169af91d/html5/thumbnails/24.jpg)
http://continuousdelivery.com/http://studios.thoughtworks.com/gohttp://thoughtworks.com/
thank you!