Jenkins User Conference - Preparing for Enterprise Continuous Delivery: 5 Critical Steps

3,098 views

Published on

Slides from JUC - Palo Alto conference session: http://www.cloudbees.com/jenkins/juc2013/juc2013-palo-alto-abstracts.cb#AndrewPhillips

Published in: Technology, Business

Jenkins User Conference - Preparing for Enterprise Continuous Delivery: 5 Critical Steps

  1. 1. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf Preparing for Enterprise Continuous Delivery: 5 Critical Steps Andrew Phillips XebiaLabs www.xebialabs.com @jenkinsconf @xebialabs
  2. 2. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf A Bit About Me… !   VP Products for XebiaLabs !   Lots of enterprise software development on high-performance systems !   Been on both sides of the “Dev…Ops” fence !   Active open source contributor and committer: jclouds, Akka, Gradle and others !   Cloud, PaaS & JVM language fan (mainly Scala, Clojure) !   Regular meetup, conference etc. presenter
  3. 3. Jenkins User Conference Palo Alto , Oct 23 2013 About XebiaLabs o  Headquartered in Boston, Massachusetts o  Global development and support offices in US, NL, UK, France and India Automate & Accelerate Application Delivery The XL platform combines Build, Deployment, Provisioning and Delivery Automation to help enterprises deliver higher quality software faster. o  Reduce development applications costs o  Accelerate application time to market o  Bridge the gap between Development and Operations @jenkinsconf
  4. 4. Jenkins User Conference Palo Alto , Oct 23 2013 Agenda !   Everybody’s Going CD !   Lightning CD Recap !   Enterprise Challenges !   5 Steps on the Way to CD !   A CD Maturity Model !   Common Automation Stack @jenkinsconf
  5. 5. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf "Continuous delivery is a set of patterns and best practices that can help software teams dramatically improve the pace and quality of their software delivery."
  6. 6. Jenkins User Conference Palo Alto , Oct 23 2013 Everybody’s Going CD @jenkinsconf
  7. 7. Jenkins User Conference Palo Alto , Oct 23 2013 Everybody’s Going CD !   Why? @jenkinsconf
  8. 8. Jenkins User Conference Palo Alto , Oct 23 2013 Everybody’s Going CD !   Why? !   It’s fun @jenkinsconf
  9. 9. Jenkins User Conference Palo Alto , Oct 23 2013 Everybody’s Going CD !   Why? !   It’s fun !   It’s cool @jenkinsconf
  10. 10. Jenkins User Conference Palo Alto , Oct 23 2013 Everybody’s Going CD !   Why? !   It’s fun !   It’s cool !   All the cool kids do it @jenkinsconf
  11. 11. Jenkins User Conference Palo Alto , Oct 23 2013 Everybody’s Going CD !   Why? !   It’s fun !   It’s cool !   All the cool kids do it !   It accelerates time to market @jenkinsconf
  12. 12. Jenkins User Conference Palo Alto , Oct 23 2013 Everybody’s Going CD !   Why? !   It’s fun !   It’s cool !   All the cool kids do it !   It accelerates time to market !   All of the above @jenkinsconf
  13. 13. Jenkins User Conference Palo Alto , Oct 23 2013 Everybody’s Going CD !   Why? !   It’s fun !   It’s cool !   All the cool kids do it !   It accelerates time to market !   All of the above @jenkinsconf
  14. 14. Jenkins User Conference Palo Alto , Oct 23 2013 Everybody’s Going CD !   Why? !   It’s fun !   It’s cool !   All the cool kids do it !   It accelerates time to market !   All of the above @jenkinsconf
  15. 15. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf Lightning Recap "Our highest priority is to satisfy the customer through early and continuous delivery of valuable software."
  16. 16. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf Lightning Recap "Our highest priority is to satisfy the customer through early and continuous delivery of valuable software."
  17. 17. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf Lightning Recap "Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.“ Principle #1 from the Agile Manifesto
  18. 18. Jenkins User Conference Palo Alto , Oct 23 2013 Lightning Recap Value of code in repo vs. Value of code in use by customer @jenkinsconf
  19. 19. Jenkins User Conference Palo Alto , Oct 23 2013 Lightning Recap Value of code in repo vs. Value of code in use by customer @jenkinsconf
  20. 20. Jenkins User Conference Palo Alto , Oct 23 2013 Lightning Recap Value of code in repo vs. Value of code in use by customer @jenkinsconf
  21. 21. Jenkins User Conference Palo Alto , Oct 23 2013 Lightning Recap Value of code in repo vs. Value of code in use by customer @jenkinsconf
  22. 22. Jenkins User Conference Palo Alto , Oct 23 2013 Lightning Recap Value of code in repo vs. Value of code in use by customer @jenkinsconf
  23. 23. Jenkins User Conference Palo Alto , Oct 23 2013 Enterprise Challenges @jenkinsconf
  24. 24. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf Enterprise Challenges !   Large, monolithic applications !   Low levels of automation !   Contended environments !   Release Management requirements !  …
  25. 25. Jenkins User Conference Palo Alto , Oct 23 2013 5 Steps on the Way @jenkinsconf
  26. 26. Jenkins User Conference Palo Alto , Oct 23 2013 5 Steps on the Way @jenkinsconf
  27. 27. Jenkins User Conference Palo Alto , Oct 23 2013 5 Steps on the Way + = @jenkinsconf
  28. 28. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf 1. Complete Delivery Artifact !   We move one uniquely identified deliverable through the pipeline !   Needs to contain all the items considered part of the delivered version –  Application binaries –  Database changes –  Configuration files –  Server settings –  Dependencies
  29. 29. Jenkins User Conference Palo Alto , Oct 23 2013 1. Complete Delivery Artifact !   This might sound self-evident, but… !   …it's harder to do than it appears –  Environment-specific builds? –  Configuration settings requested via change tickets? –  Smoke tests present only in the testers' notes/heads? @jenkinsconf
  30. 30. Jenkins User Conference Palo Alto , Oct 23 2013 2. Pipeline Stage Checklist !   Break down your pipeline into tasks !   For each task, define –  Owner –  Input –  Output –  Triggers –  Prerequisites/gates –  Success/failure criteria –  Failure handling @jenkinsconf
  31. 31. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf 2. Pipeline Stage Checklist !   Checklists determine sequence and parallelization of stages !   Knowledge/confidence level/quality measurements are also output! !   Think about feedback cycles ("if this task fails, how can I learn from that?")
  32. 32. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf 3. Manageable Units of Work !   In general, smaller tasks = faster runtime !   Basic upper limit: throughput = 1 / (duration of longest task) !   Are your long-running tasks providing “value for runtime”?
  33. 33. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf 4. Scalable Capacity !   To run pipeline jobs (= "workers") !   To run applications (= "environments“)
  34. 34. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf 4. Scalable Capacity !   To run pipeline jobs (= "workers") !   To run applications (= "environments") !   Would like on-demand capacity quickly !   Investigate cloud-based services
  35. 35. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf 5. Automation, Automation, Automation !   Automation isn’t a prerequisite for CD… !   …but it’s pretty much essential !   Can you reliably execute your manual task at the required frequency with the desired level of throughput?
  36. 36. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf 5. Automation, Automation, Automation !   Automation isn’t a prerequisite for CD… !   …but it’s pretty much essential !   Can you reliably execute your manual task at the required frequency with the desired level of throughput?
  37. 37. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf 5. Automation, Automation, Automation !   Think about –  Build automation –  Unit Test automation –  Deployment automation –  Integration/Performance/UA Test automation –  Automated metrics gathering –  Automated feedback cycles
  38. 38. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf 6. "Side Effect" Overview !   Pipeline tasks and stages don’t just run and produce log output… !   …they also have “side effects” –  Creating and destroying on-demand environments –  Updating of versions of applications deployed to (testing, mainly) environments –  Updating the “confidence measure” of the application version being tested
  39. 39. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf 6. "Side Effect" Overview !   Don’t want to have to "re-engineer" the state of your IT landscape based on the progress of pipeline jobs !   More commonly-used domain model helps present business-relevant information
  40. 40. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf 7. Release Control !   Later pipeline stages affect tightly-controlled environments !   Release Management requirements must be met !   Can link this to prerequisites/gates for tasks
  41. 41. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf 7. Release Control !   How to automate gates to avoid a manual bottleneck? !   How to ensure (automated) quality/security etc. measurements fulfil release requirements !   "Fine-tuning the dial between throughput and control"
  42. 42. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf 8. Improvement Metrics !   You (or your boss) don’t just want to feel things are getting better… !   …you need to know they are!
  43. 43. Jenkins User Conference Palo Alto , Oct 23 2013 8. Improvement Metrics !   Sample metrics: –  Throughput? –  Failure rate? –  Standardization coefficient –  Mean & stddev of duration per task/stage? –  Max/min duration per task/stage? –  # of manual tasks? @jenkinsconf
  44. 44. Jenkins User Conference Palo Alto , Oct 23 2013 Summary 1.  Complete Delivery Artifact @jenkinsconf
  45. 45. Jenkins User Conference Palo Alto , Oct 23 2013 Summary 1.  Complete Delivery Artifact 2.  Pipeline Stage Checklist @jenkinsconf
  46. 46. Jenkins User Conference Palo Alto , Oct 23 2013 Summary 1.  Complete Delivery Artifact 2.  Pipeline Stage Checklist 3.  Manageable Units of Work @jenkinsconf
  47. 47. Jenkins User Conference Palo Alto , Oct 23 2013 Summary 1.  Complete Delivery Artifact 2.  Pipeline Stage Checklist 3.  Manageable Units of Work 4.  Scalable Capacity @jenkinsconf
  48. 48. Jenkins User Conference Palo Alto , Oct 23 2013 Summary 1.  Complete Delivery Artifact 2.  Pipeline Stage Checklist 3.  Manageable Units of Work 4.  Scalable Capacity 5.  Automation, Automation, Automation @jenkinsconf
  49. 49. Jenkins User Conference Palo Alto , Oct 23 2013 Summary 1.  Complete Delivery Artifact 2.  Pipeline Stage Checklist 3.  Manageable Units of Work 4.  Scalable Capacity 5.  Automation, Automation, Automation 6.  "Side Effect" Overview @jenkinsconf
  50. 50. Jenkins User Conference Palo Alto , Oct 23 2013 Summary 1.  Complete Delivery Artifact 2.  Pipeline Stage Checklist 3.  Manageable Units of Work 4.  Scalable Capacity 5.  Automation, Automation, Automation 6.  "Side Effect" Overview 7.  Release Control @jenkinsconf
  51. 51. Jenkins User Conference Palo Alto , Oct 23 2013 Summary 1.  Complete Delivery Artifact 2.  Pipeline Stage Checklist 3.  Manageable Units of Work 4.  Scalable Capacity 5.  Automation, Automation, Automation 6.  "Side Effect" Overview 7.  Release Control 8.  Improvement Metrics @jenkinsconf
  52. 52. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf Maturity Model !   Metrics give indication of progress !   Define a maturity model based on your business goals !   Will often spans more than "classic" automation: from requirements gathering to runtime application and quality analysis !   Feedback cycles essential to targeted improvements
  53. 53. Jenkins User Conference Palo Alto , Oct 23 2013 Common Automation Stack @jenkinsconf
  54. 54. Jenkins User Conference Palo Alto , Oct 23 2013 Bonus: Lightning Demo! @jenkinsconf
  55. 55. Jenkins User Conference Palo Alto , Oct 23 2013 Thank You To Our Sponsors Platinum Gold Silver @jenkinsconf
  56. 56. Jenkins User Conference Palo Alto , Oct 23 2013 @jenkinsconf More Info !   Application Release Trends 2013 Survey –  go.xebialabs.com/Survey2013.htm ! Dzone Refcard: “Preparing for Continuous Delivery” –  refcardz.dzone.com/refcardz/preparing-continuous-delivery !   “Best Practice for Continuous Delivery Automation” –  go.xebialabs.com/best-practice-cda.html !   Continuous Delivery Automation –  www.xebialabs.com/continuous-delivery
  57. 57. Jenkins User Conference Palo Alto , Oct 23 2013 Thank You! CONTACT DETAILS !   Andrew Phillips: aphillips at xebialabs dot com NEXT STEPS !   More information: www.xebialabs.com GET STARTED !   Try it out! www.xebialabs.com/trial Products: www.xebialabs.com/products Blog: blog.xebialabs.com Twitter: @xebialabs Videos: vimeo.com/xebialabs @jenkinsconf

×