Continuous delivery agile_2012
Upcoming SlideShare
Loading in...5
×
 

Continuous delivery agile_2012

on

  • 778 views

 

Statistics

Views

Total Views
778
Views on SlideShare
778
Embed Views
0

Actions

Likes
1
Downloads
29
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Continuous delivery agile_2012 Continuous delivery agile_2012 Presentation Transcript

    • Continuous Delivery @jezhumble #Agile2012, 15 August 2012 http://thoughtworks-studios.com/Thursday, August 16, 12
    • agile 101 "Agile" team Analysis + Design Centralized QA IT Operations Development Integration + QA Release and operation Customer Testing + Showcase Iteration 0 1 2 3 4 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 thing Customer developent Agile product development Eric Ries, “The Lean Startup” http://bit.ly/8ZoX5FThursday, August 16, 12
    • innovate You cant just ask customers what they want and then try to give that to them. By the time you get it built, theyll want something new. Steve JobsThursday, August 16, 12
    • scientific method Ideas create hypothesis Learn Build deliver minimum viable product Data Code get feedback Measure (repeat) Eric Ries, “The Lean Startup” http://bit.ly/8ZoX5FThursday, 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 thing reduce risk of release John Allspaw: “Ops Metametrics” http://slidesha.re/dsSZIrThursday, August 16, 12
    • optimize for mtrsThursday, August 16, 12
    • optimize for mtrs MTBF MTRSThursday, August 16, 12
    • releasing frequently build the right thing reduce risk of release real project progressThursday, August 16, 12
    • agile manifesto Our highest priority is to satisfy the customer through early and continuous delivery of valuable softwareThursday, August 16, 12
    • production-ready software Fast, automated feedback on the production readiness of your applications every time there is a change - to code, infrastructure, or configurationThursday, August 16, 12
    • continuous delivery Software always production ready Releases tied to business needs, not operational constraintsThursday, August 16, 12
    • continuous delivery automation patterns and practices collaborationThursday, August 16, 12
    • ingredients configuration management continuous integration automated testingThursday, August 16, 12
    • Local Develop Workstation Mainline Server Build pull Build Build ✔ Done! pushThursday, August 16, 12
    • Local Develop Workstation Everyone Commits Mainline Server Build To the pull Mainline Build Every Day Build ✔ Done! pushThursday, 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
    • different kinds of testing Business facing AUTOMATED MANUAL Showcases Support programming Functional acceptance Usability testing tests Critique project Exploratory testing Unit tests Non-functional Integration tests acceptance tests System tests (performance, scaling, ...) AUTOMATED MANUAL / AUTOMATED Technology facing Diagram invented by Brian MarickThursday, August 16, 12
    • deployment pipeline an automated implementation of your system’s build, deploy, test, release process visibility feedback controlThursday, August 16, 12
    • deployment pipeline Delivery team Version control Build & unit Automated User acceptance Release tests acceptance tests tests Check in Trigger Feedback Check in Trigger Feedback Trigger Feedback Check in Trigger Feedback Trigger Feedback Approval Feedback ApprovalThursday, August 16, 12
    • deployment pipelineThursday, August 16, 12
    • deployment pipelineThursday, August 16, 12
    • reducing release risk automate provisioning and deployment ensure devs, testers and ops collaborate throughoutThursday, August 16, 12
    • reducing release risk devops incrementalism decoupling deployment and releaseThursday, August 16, 12
    • devops culture automation measurement sharingThursday, August 16, 12
    • feature toggles blue-green deployments canary releases low risk releases are incremental dark launching production immune systemThursday, August 16, 12
    • DEPENDENT SERVICE 1.0 1.1 Database Abstraction layer Abstraction layer STATIC CONTENT /static/1.1 APPLICATION /static/1.0 Router / Load balancer InterwebsThursday, August 16, 12
    • blue-green deploymentsThursday, August 16, 12
    • router web app DB server server serverThursday, August 16, 12
    • v1.1 v1.1 v1.1 router web app DB server server serverThursday, August 16, 12
    • v1.1 v1.1 v1.1 router v1.2 v1.2 v1.2 web app DB server server serverThursday, August 16, 12
    • v1.1 v1.1 v1.1 router v1.2 v1.2 v1.2 web app DB server server serverThursday, August 16, 12
    • Canary ReleasingThursday, August 16, 12
    • Thursday, August 16, 12
    • Thursday, August 16, 12
    • canary releasing Reduce risk of release Multi-variant testing Performance testingThursday, 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 != deploymentThursday, August 16, 12
    • feature toggles Config File [featureToggles] wobblyFoobars: true some.php flightyForkHandles: false <?if ($wobblyFoobars) {?> ... various UI elements <?}?> other.php $fork_handle = ($featureConfig->isOn(‘flightlyForkHandles)) ? new flightyForkHander(aCandle) : new forkHandler(aCandle); Stolen from Martin Fowler http://martinfowler.com/bliki/FeatureToggle.htmlThursday, August 16, 12
    • Dark LaunchingThursday, August 16, 12
    • Thursday, August 16, 12
    • Thursday, August 16, 12
    • enterprise governance risk management SOX, ITIL, COBIT segregation of duties change management auditing and complianceThursday, August 16, 12
    • people are the key Get everyone together at the beginning Keep meeting Make it easy for everyone to see what’s happening Continuous improvement (kaizen)Thursday, August 16, 12
    • questions jez@thoughtworks.com http://continuousdelivery.com/ @jezhumble #continuousdelivery © 2011 ThoughtWorks, Inc. http://thoughtworks-studios.com/Thursday, August 16, 12