A Continuous Delivery Maturity Model

1,035 views

Published on

Video and slides synchronized, mp3 and slide download available at http://bit.ly/13Y9mBE.

Eric Minick discusses continuous delivery challenges in the enterprise where large projects, distributed teams or strict governance requirements have resulted in increased automation efforts throughout the life cycle.Filmed at qconnewyork.com.

Eric Minick is a lead consultant at UrbanCode where he helps customers implement continuous delivery. Eric has been at the forefront of continuous integration and delivery for 8+ years as a developer, tester and consultant.

Published in: Technology

A Continuous Delivery Maturity Model

  1. 1. Continuous Delivery Maturity Model
  2. 2. InfoQ.com: News & Community Site • 750,000 unique visitors/month • Published in 4 languages (English, Chinese, Japanese and Brazilian Portuguese) • Post content from our QCon conferences • News 15-20 / week • Articles 3-4 / week • Presentations (videos) 12-15 / week • Interviews 2-3 / week • Books 1 / month Watch the video with slide synchronization on InfoQ.com! http://www.infoq.com/presentations /continuous-delivery-model
  3. 3. Presented at QCon New York www.qconnewyork.com Purpose of QCon - to empower software development by facilitating the spread of knowledge and innovation Strategy - practitioner-driven conference designed for YOU: influencers of change and innovation in your teams - speakers and topics driving the evolution and innovation - connecting and catalyzing the influencers and innovators Highlights - attended by more than 12,000 delegates since 2007 - held in 9 cities worldwide
  4. 4. UrbanCode Inc. ©2013 Who is that guy?  Techie at UrbanCode - (now IBM)  Working on CI & CD tools for the last 10 years.
  5. 5. UrbanCode Inc. ©2013 IMVU’s Extreme CD: 1 App to Prod, 50 times / day Build Run thousands of tests Deploy to some servers Monitor Deploy to remaining servers
  6. 6. UrbanCode Inc. ©2013 Mature or crazy?
  7. 7. UrbanCode Inc. ©2013 Why a maturity model? How awesome is my team? Winning!
  8. 8. UrbanCode Inc. ©2013 Why a maturity model?  Where are we now?  What are other people doing?  Where do we want to be?  How do we get there? The future is here. It’s just not evenly distributed yet.” - William Gibson
  9. 9. UrbanCode Inc. ©2013 The Model
  10. 10. UrbanCode Inc. ©2013 Credit Where Due
  11. 11. UrbanCode Inc. ©2013 5 Levels Base Beginner Intermediate Advanced Extreme
  12. 12. UrbanCode Inc. ©2013 Four categories, held together with culture
  13. 13. UrbanCode Inc. ©2013 Build
  14. 14. UrbanCode Inc. ©2013 Dependencies are the hard part
  15. 15. UrbanCode Inc. ©2013 Deploying
  16. 16. UrbanCode Inc. ©2013 Big question: how do we coordinate components?  Build Pipeline Tool - Pressure development to adapt to this model  CI tool + Application Deployment Automation Tool - Add a tool that pulls from the various build systems
  17. 17. UrbanCode Inc. ©2013 When is each approach appropriate? Pipeline  Simple apps  Low coupling between components / services  Tests validate ONE version of ONE thing  Shared tool ownership ok Build + ADA  More complex applications  Higher coupling between components / services  Tests validate that the larger system is working  Dev wants to own build, Ops wants to own deploy
  18. 18. UrbanCode Inc. ©2013 Most people fall into the Build + ADA pattern Pipeline here
  19. 19. UrbanCode Inc. ©2013 Measure & Test
  20. 20. UrbanCode Inc. ©2013
  21. 21. UrbanCode Inc. ©2013 Communication & Reports
  22. 22. UrbanCode Inc. ©2013 There are inter-dependencies
  23. 23. UrbanCode Inc. ©2013 Standard Target Based on this model, the standard target is:  Continuous builds on a distributed grid using dependency management  Auto-deploy to the first environment  Extensive testing of multiple types  Test results and trends are widely visible  Self-service deployments to other environments - Production style deployments everywhere - Deployments coordinate tiers/services as appropriate
  24. 24. UrbanCode Inc. ©2013 We’re not all the same
  25. 25. UrbanCode Inc. ©2013 Applying the Model
  26. 26. UrbanCode Inc. ©2013 Basic Plan  Audit where you are  Understand the pain points & bottlenecks  Agree on where you want to be  Prioritize
  27. 27. UrbanCode Inc. ©2013 Example Persona: El Emeno Investments  Securities trading is a key profit center  Fast updates desired - Exploit transient opportunities  Strict legal requirements & audits ♫ Audit RulesDelivery TeamBusiness Faster! Slow down, be careful!
  28. 28. UrbanCode Inc. ©2013 Make it safe to go fast
  29. 29. UrbanCode Inc. ©2013 Audit for El Emeno  Build - Continuous integration (each team has own tool)
  30. 30. UrbanCode Inc. ©2013 Audit for El Emeno  Build - Continuous integration (each team has own tool)  Deployment - Some scripts, mostly manual - Hand-offs by email - Coordination of components based on dev oral history
  31. 31. UrbanCode Inc. ©2013 Audit for El Emeno  Build - Continuous integration (each team has own tool)  Deployment - Some scripts, mostly manual - Hand-offs by email - Coordination of components based on dev oral history  Measure & Test - 20% unit test coverage - Almost no functional tests - Security scanning tool run manually
  32. 32. UrbanCode Inc. ©2013 Audit for El Emeno  Build - Continuous integration (each team has own tool)  Deployment - Some scripts, mostly manual - Hand-offs by email - Coordination of components based on dev oral history  Measure & Test - 20% unit test coverage - Almost no functional tests - Security scanning tool run manually  Communicate - Silo’d and emailed with hand-off requests
  33. 33. UrbanCode Inc. ©2013 Bottlenecks for El Emeno • Manual regression tests are too slow • Never allocated enough time • Environment outages problematic Measure • Manual / semi-scripted deployments are slow • Cost of compliance is high • Errors in deployment are risky Deployment
  34. 34. UrbanCode Inc. ©2013 Bottlenecks for El Emeno • Mostly okBuild • Need easy audit trail for approvals and deployments • Shared reporting a“nice-to-have” Communicate
  35. 35. UrbanCode Inc. ©2013 Desired state Today  Build - Continuous integration (each team has own tool)  Deployment - Some scripts, mostly manual - Hand-offs by email - Coordination of components based on dev oral history  Measure / Test - 20% unit test coverage - Almost no functional tests - Security scanning tool used& run manually  Communicate - Silo’d and emailed with hand-off requests Future  Build - Good artifact management key  Deployment - Consistent self-service deploys in all environments - Integrated with approvals & good audit trails - Coordinate tiers & services  Measure / Test - Need regression testing of core functionality - Security scanning should happen automatically  Communicate - Produce test, security scan, and approval logs for releases
  36. 36. UrbanCode Inc. ©2013 Scoring current vs future 0 1 2 3 4 5 Build Deploy Testing Reporting Current Future Base Beginner Intermediate Advanced Extreme
  37. 37. UrbanCode Inc. ©2013 Prioritization: observations  Deploy & Test are biggest weaknesses - Development responsiveness is a strength  Testers are spending time de-bugging bad deployments
  38. 38. UrbanCode Inc. ©2013 Prioritize: Plan of attack for El Emeno 1 Get deployments decent. - Ensure we have an artifact repo for builds 2 Invest Dev & QA time savings into regression tests 3 Re-evaluate in 6-12 months
  39. 39. UrbanCode Inc. ©2013 A simple maturity model Urbancode.com/resources
  40. 40. UrbanCode Inc. ©2013 What are you doing Monday? Download the Maturity Model and talk your team Are we where we need to be?
  41. 41. UrbanCode Inc. ©2013 What are you doing in two months?  Implementing updates to your Continuous Delivery capabilities
  42. 42. Thank you! @EricMinick Urbancode.com/resources/

×