Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Continuous Delivery Maturity Model

Continuous Delivery Maturity Model

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.

Avatar for UrbanCode

UrbanCode

June 13, 2013
Tweet

More Decks by UrbanCode

Other Decks in Technology

Transcript

  1. UrbanCode  Inc.    ©2013   Who is that guy? § 

    Techie  at  UrbanCode   ­  (now  IBM)   §  Working  on  CI  &  CD   tools  for  the  last  10   years.    
  2. 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  
  3. 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  
  4. UrbanCode  Inc.    ©2013   5 Levels Base   Beginner

      Intermediate   Advanced   Extreme  
  5. UrbanCode  Inc.    ©2013   Big question: how do we

    coordinate components? §  Build  Pipeline  Tool   ­  Pressure  development  to  adapt  to  this  model       §  CI  tool  +  ApplicaUon  Deployment  AutomaUon  Tool   ­  Add  a  tool  that  pulls  from  the  various  build  systems  
  6. 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  applicaUons   §  Higher  coupling  between   components  /  services   §  Tests  validate  that  the   larger  system  is  working   §  Dev  wants  to  own  build,   Ops  wants  to  own  deploy  
  7. UrbanCode  Inc.    ©2013   Most people fall into the

    Build + ADA pattern Pipeline  here  
  8. UrbanCode  Inc.    ©2013   Standard Target Based  on  this

     model,  the  standard  target  is:   §  ConUnuous  builds  on  a  distributed  grid  using   dependency  management   §  Auto-­‐deploy  to  the  first  environment   §  Extensive  tesUng  of  mulUple  types   §  Test  results  and  trends  are  widely  visible   §  Self-­‐service  deployments  to  other  environments   ­  ProducUon  style  deployments  everywhere   ­  Deployments  coordinate  Uers/services  as  appropriate  
  9. UrbanCode  Inc.    ©2013   Basic Plan §  Audit  where

     you  are   §  Understand  the  pain  points  &  bo_lenecks   §  Agree  on  where  you  want  to  be   §  PrioriUze  
  10. UrbanCode  Inc.    ©2013   Example Persona: El Emeno Investments

    §  SecuriUes  trading  is  a  key  profit  center   §  Fast  updates  desired   ­  Exploit  transient  opportuniUes   §  Strict  legal  requirements  &  audits   㽈 Audit  Rules   Delivery  Team   Business   Faster!   Slow   down,  be   careful!  
  11. UrbanCode  Inc.    ©2013   Audit for El Emeno § 

    Build   ­  ConUnuous  integraUon  (each  team  has  own  tool)  
  12. UrbanCode  Inc.    ©2013   Audit for El Emeno § 

    Build   ­  ConUnuous  integraUon  (each  team  has  own  tool)   §  Deployment   ­  Some  scripts,  mostly  manual   ­  Hand-­‐offs  by  email   ­  CoordinaUon  of  components  based  on  dev  oral  history  
  13. UrbanCode  Inc.    ©2013   Audit for El Emeno § 

    Build   ­  ConUnuous  integraUon  (each  team  has  own  tool)   §  Deployment   ­  Some  scripts,  mostly  manual   ­  Hand-­‐offs  by  email   ­  CoordinaUon  of  components  based  on  dev  oral  history   §  Measure  &  Test   ­  20%  unit  test  coverage   ­  Almost  no  funcUonal  tests   ­  Security  scanning  tool  run  manually  
  14. UrbanCode  Inc.    ©2013   Audit for El Emeno § 

    Build   ­  ConUnuous  integraUon  (each  team  has  own  tool)   §  Deployment   ­  Some  scripts,  mostly  manual   ­  Hand-­‐offs  by  email   ­  CoordinaUon  of  components  based  on  dev  oral  history   §  Measure  &  Test   ­  20%  unit  test  coverage   ­  Almost  no  funcUonal  tests   ­  Security  scanning  tool  run  manually   §  Communicate   ­  Silo’d  and  emailed  with  hand-­‐off  requests  
  15. UrbanCode  Inc.    ©2013   Bottlenecks for El Emeno • Manual

     regression  tests  are  too   slow   • Never  allocated  enough  Ume   • Environment  outages  problemaUc   Measure   • Manual  /  semi-­‐scripted   deployments  are  slow   • Cost  of  compliance  is  high   • Errors  in  deployment  are  risky   Deployment  
  16. UrbanCode  Inc.    ©2013   Bottlenecks for El Emeno • Mostly

     ok   Build   • Need  easy  audit  trail  for   approvals  and  deployments   • Shared  reporUng  a“nice-­‐to-­‐ have”   Communicate  
  17. UrbanCode  Inc.    ©2013   Desired state Today   § 

    Build   ­  ConUnuous  integraUon  (each  team   has  own  tool)   §  Deployment   ­  Some  scripts,  mostly  manual   ­  Hand-­‐offs  by  email   ­  CoordinaUon  of  components  based   on  dev  oral  history   §  Measure  /  Test   ­  20%  unit  test  coverage   ­  Almost  no  funcUonal  tests   ­  Security  scanning  tool  used&  run   manually   §  Communicate   ­  Silo’d  and  emailed  with  hand-­‐off   requests   Future   §  Build   ­  Good  arUfact  management  key   §  Deployment   ­  Consistent  self-­‐service  deploys  in   all  environments   ­  Integrated  with  approvals  &  good   audit  trails   ­  Coordinate  Uers  &  services   §  Measure  /  Test   ­  Need  regression  tesUng  of  core   funcUonality   ­  Security  scanning  should  happen   automaUcally   §  Communicate   ­  Produce  test,  security  scan,  and   approval  logs  for  releases  
  18. UrbanCode  Inc.    ©2013   Scoring current vs future 0

      1   2   3   4   5   Build   Deploy   TesUng   ReporUng   Current   Future   Base   Beginner   Intermediate   Advanced   Extreme  
  19. UrbanCode  Inc.    ©2013   Prioritization: observations §  Deploy  &

     Test  are  biggest  weaknesses   ­  Development  responsiveness  is  a  strength   §  Testers  are  spending  Ume  de-­‐bugging  bad   deployments  
  20. UrbanCode  Inc.    ©2013   Prioritize: Plan of attack for

    El Emeno 1  Get  deployments  decent.   ­  Ensure  we  have  an  arUfact  repo  for  builds   2  Invest  Dev  &  QA  Ume  savings  into  regression  tests   3  Re-­‐evaluate  in  6-­‐12  months      
  21. UrbanCode  Inc.    ©2013   What are you doing Monday?

        Download  the  Maturity  Model  and  talk  your  team     Are  we  where  we  need  to  be?  
  22. UrbanCode  Inc.    ©2013   What are you doing in

    two months? §  ImplemenUng  updates  to  your  ConUnuous  Delivery   capabiliUes