Continuous Delivery Maturity Model

5,883 views

Published on

How do measure our progress in a journey towards continuous integration? What are other people doing?

This presentation provides an measuring stick for CD Maturity and simple pattern for reviewing your current situation and deciding what to work on next.

Published in: Technology
  • Be the first to comment

Continuous Delivery Maturity Model

  1. 1. Continuous Delivery Maturity Model
  2. 2. UrbanCode Inc. ©2013 Who is that guy?  Techie at UrbanCode - (now IBM)  Working on CI & CD tools for the last 10 years.
  3. 3. 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
  4. 4. UrbanCode Inc. ©2013 Mature or crazy?
  5. 5. UrbanCode Inc. ©2013 Why a maturity model? How awesome is my team? Winning!
  6. 6. 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
  7. 7. UrbanCode Inc. ©2013 The Model
  8. 8. UrbanCode Inc. ©2013 Credit Where Due
  9. 9. UrbanCode Inc. ©2013 5 Levels Base Beginner Intermediate Advanced Extreme
  10. 10. UrbanCode Inc. ©2013 Four categories, held together with culture
  11. 11. UrbanCode Inc. ©2013 Build
  12. 12. UrbanCode Inc. ©2013 Dependencies are the hard part
  13. 13. UrbanCode Inc. ©2013 Deploying
  14. 14. 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
  15. 15. 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
  16. 16. UrbanCode Inc. ©2013 Most people fall into the Build + ADA pattern Pipeline here
  17. 17. UrbanCode Inc. ©2013 Measure & Test
  18. 18. UrbanCode Inc. ©2013
  19. 19. UrbanCode Inc. ©2013 Communication & Reports
  20. 20. UrbanCode Inc. ©2013 There are inter-dependencies
  21. 21. 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
  22. 22. UrbanCode Inc. ©2013 We’re not all the same
  23. 23. UrbanCode Inc. ©2013 Applying the Model
  24. 24. UrbanCode Inc. ©2013 Basic Plan  Audit where you are  Understand the pain points & bottlenecks  Agree on where you want to be  Prioritize
  25. 25. 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!
  26. 26. UrbanCode Inc. ©2013 Make it safe to go fast
  27. 27. UrbanCode Inc. ©2013 Audit for El Emeno  Build - Continuous integration (each team has own tool)
  28. 28. 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
  29. 29. 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
  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  Measure & Test - 20% unit test coverage - Almost no functional tests - Security scanning tool run manually  Communicate - Silo’d and emailed with hand-off requests
  31. 31. 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
  32. 32. UrbanCode Inc. ©2013 Bottlenecks for El Emeno • Mostly okBuild • Need easy audit trail for approvals and deployments • Shared reporting a“nice-to-have” Communicate
  33. 33. 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
  34. 34. UrbanCode Inc. ©2013 Scoring current vs future 0 1 2 3 4 5 Build Deploy Testing Reporting Current Future Base Beginner Intermediate Advanced Extreme
  35. 35. UrbanCode Inc. ©2013 Prioritization: observations  Deploy & Test are biggest weaknesses - Development responsiveness is a strength  Testers are spending time de-bugging bad deployments
  36. 36. 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
  37. 37. UrbanCode Inc. ©2013 A simple maturity model Urbancode.com/resources
  38. 38. UrbanCode Inc. ©2013 What are you doing Monday? Download the Maturity Model and talk your team Are we where we need to be?
  39. 39. UrbanCode Inc. ©2013 What are you doing in two months?  Implementing updates to your Continuous Delivery capabilities
  40. 40. Thank you! @EricMinick Urbancode.com/resources/

×