Continuous Delivery. Jez

Size: px
Start display at page:

Download "Continuous Delivery. Jez"

Transcription

1 Continuous Delivery Jez

2 agile 101 "Agile" team Analysis + Design Development Centralized QA Integration + QA IT Operations Release and operation Customer Testing + Showcase Iteration The "last mile"

3 web 2.0 disrupting traditional businesses

4 releasing frequently 1. build the right thing Customer development Agile product development Eric Ries, The Lean Startup

5 innovate You 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

6 scientific method Ideas create hypothesis Learn Build deliver minimum viable product Data Code get feedback Measure (repeat) Eric Ries, The Lean Startup

7 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.

8 releasing frequently 1. build the right thing 2. reduce risk of release John Allspaw: Ops Metametrics

9 releasing frequently 1. build the right thing 2. reduce risk of release 3. real project progress

10 agile manifesto Our highest priority is to satisfy the customer through early and continuous delivery of valuable software

11 production-ready software Fast, automated feedback on the production readiness of your applications every time there is a change - to code, infrastructure, or configuration

12 continuous delivery Customer Delivery team Constant flow of new features into production Software always production ready Releases tied to business needs, not operational constraints

13 continuous delivery automation patterns and practices collaboration

14 ingredients configuration management continuous integration automated testing

15 Develop Local Workstation Mainline Server Build pull Build push Build Done!

16 Develop Local Workstation Everyone Commits Mainline Server Build To the Mainline pull Build Every Day push Build Done!

17 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 Deming

18 different kinds of testing AUTOMATED Business facing MANUAL Support programming Functional acceptance tests Unit tests Integration tests System tests Showcases Usability testing Exploratory testing Non-functional acceptance tests (performance, scaling,...) Critique project AUTOMATED Technology facing MANUAL / AUTOMATED Diagram invented by Brian Marick

19 deployment pipeline an automated implementation of your system s build, deploy, test, release process visibility feedback control

20 deployment pipeline Delivery team Version control Build & unit tests Automated acceptance tests User acceptance tests Release Check in Trigger Feedback Check in Trigger Feedback Trigger Feedback Check in Trigger Feedback Trigger Feedback Feedback Approval Approval

21 deployment pipeline

22 deployment pipeline

23 reducing release risk devops incrementalism decoupling deployment and release

24 devops culture automation measurement sharing

25 feature toggles blue-green deployments canary releases low risk releases are incremental dark launching production immune system

26 DEPENDENT SERVICE Database Abstraction layer Abstraction layer STATIC CONTENT /static/1.1 APPLICATION /static/1.0 Router / Load balancer Interwebs

27 blue-green deployments

28 router web server app server DB server

29 v1.1 v1.1 v1.1 router web server app server DB server

30 v1.1 v1.1 v1.1 router v1.2 v1.2 v1.2 web server app server DB server

31 v1.1 v1.1 v1.1 router v1.2 v1.2 v1.2 web server app server DB server

32 release!= deployment

33 feature toggles Config File [featuretoggles] wobblyfoobars: true flightyforkhandles: false some.php <?if ($wobblyfoobars) {?>... various UI elements <?}?> other.php $fork_handle = ($featureconfig->ison( flightlyforkhandles))? new flightyforkhander(acandle) : new forkhandler(acandle); Stolen from Martin Fowler

34 Dark Launching

35

36

37 enterprise governance risk management SOX, ITIL, COBIT segregation of duties change management auditing and compliance

38 people are the key inceptions, showcases, retrospectives rotate people, share the pain big, visible displays continuous improvement (kaizen)

39 questions #continuousdelivery 2011 ThoughtWorks, Inc.