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

Continuous Delivery 101

Continuous Delivery 101

A set of principles and practices to get your ideas into your users' hands quickly and confidently.

GetCloudnative

August 04, 2018
Tweet

More Decks by GetCloudnative

Other Decks in Business

Transcript

  1. MARTIN ETMAJER Founder | GetCloudnative e.U. Version: 20180804 A set

    of principles and practices to get your ideas into your users‘ hands quickly and confidently. Continuous Delivery 101
  2. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 4 Traditional Software

    Development Analysis Design Implementation Verification Operations
  3. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 5 Traditional Software

    Development Analysis Design Implementation Verification Operations Observation 1: Rigidity A sequential flow of progress towards an anticipated end goal.
  4. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 6 Traditional Software

    Development Analysis Design Implementation Verification Operations Observation 2: Change Resistance The entire product is specified in advance (assumes no change). Efforts put into heavy documentation fosters change resistance.
  5. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 9 Traditional Software

    Development Analysis Design Implementation Verification Operations Observation 3: Low Customer Involvement Course corrections are not part of the process.
  6. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 10 Traditional Software

    Development Analysis Design Implementation Verification Operations Observation 4: Accumulation of Risk Verification and testing occurs only in the end. Problems can go unnoticed for a very long time.
  7. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 11 Traditional Software

    Development Release Candidate Development We need this to go live tomorrow! Operations Not so fast! The Wall Observation 5: Long and Error-Prone Delivery Releases are characterized by lengthy approval processes and intensive manual labor.
  8. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 13 Traditional Software

    Development Analysis Design Implementation Verification Operations Observation 6: Slow Time-to-Market Value is created earliest (if at all) once the entire product has been delivered.
  9. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 14 Chaos Manifesto

    2013 Analysed ~50.000 real-life software development projects from 2004 – 2012 Europe (25%) USA (60%) Others (15%)
  10. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 15 Chaos Manifesto

    2013 Analysed ~50.000 real-life software development projects from 2004 – 2012 Medium Companies (30%) Small Companies (20%) Large Companies (50%) Fortune 1000-type
  11. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 16 Chaos Manifesto

    2013 Project Resolution RESOLUTION 2004 2006 2008 2010 2012 Successful 29 % 35 % 32 % 37 % 39 % Failed 18 % 19 % 24 % 21 % 18 % Challenged 53 % 46 % 44 % 42 % 43 % worst year best year positive trend due to decrease in Waterfall and increase in Agile projects
  12. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 17 Chaos Manifesto

    2013 Project Resolution: Large vs. Small Projects in 2012 RESOLUTION Large Projects Small Projects Successful 10 % 76 % Failed 38 % 4 % Challenged 52 % 20 %
  13. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 19 Chaos Manifesto

    2013 Large vs. Small Projects Large Projects > $10M in labor cost almost no chance of being successful, 2,5x more likely to being challenged, 10x more likely to fail outright Small Projects < $1M in labor cost > 70% chance of being successful, deliver results used to create ROI
  14. Source: dilbert.com Focus on High-Value Features „Natural expectations is for

    executives and stakeholders to want it all and want it all now.“ The Standish Group. Chaos Manifesto 2013: Think Big, Act Small
  15. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 21 Chaos Manifesto

    2013 Focus on High-Value Features OFTEN USED SOMETIMES USED HARDLY EVER OR NEVER USED 20% provide 80% of the value 50% are hardly ever or never used 30% are used only sometimes or infrequently
  16. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 22 Chaos Manifesto

    2013 Focus on High-Value Features OFTEN USED SOMETIMES USED focusing on these features maximizes investment in software development and improves user satisfaction focusing on features to the right doesn‘t increase project value much and may set you up for failure
  17. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 24 „Our highest

    priority is to satisfy the customer through early and continuous delivery of valuable software.“ Agile Manifesto Principle No. 1
  18. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 25 Continuous Delivery

    A set of principles and practices to get your ideas into your users‘ hands quickly and confidently. minimize Customer learning this is where you create value (cycle) time Idea
  19. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 26 Scientific Method

    A continuous and iterative process for running experiments. Hypothesis Experiment analyze data and draw conclusions test formulate
  20. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 27 Faster Time-to-Market

    An automated build, deploy, test and release process greatly reduces the feature cycle time. Lower Risks Automation makes software releases reliable and repeatable (if not to say boring). Higher Quality Automated testing in production-like environments greatly reduces defects in production. Better Products The ability to release features at any time enables working in small steps and running experiments. Happier Teams Continuous Delivery makes releases less painful. Teams can focus on being creative and solving problems. Continuous Delivery Benefits
  21. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 29 Create an

    Automated, Repeatable and Reliable Release Process Releasing software into production should be as easy as selecting a version and pushing a button. Automate your build, deploy, test and release process up to the point where human decision making is required. Everyone is Responsible Don‘t incentivize silo behavior. Everyone must work together on achieving the company‘s goals. Make improving work a part of your routine and never be satisfied with the status quo. Keep Everything in Version Control Maintain a single source of truth for your source code, configuration, data, scripts, and documentation. Build Quality In! Integrate feedback loops to catch process defects as early as possible (while they‘re cheap) – then fix them. Continuous Delivery Principles
  22. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 31 The Continuous

    Delivery Deployment Pipeline Overview Developer Version Control Code check-in
  23. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 32 The Continuous

    Delivery Deployment Pipeline Overview Developer Version Control Code check-in query check-out each check-in triggers a pipeline run CI/CD Server (Pipeline Executor) Release Test Deploy Build
  24. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 33 The Continuous

    Delivery Deployment Pipeline Overview Developer Version Control Code check-in query check-out Business push button each check-in triggers a pipeline run a build advances along the pipeline in stages (in case of error, the pipeline is stopped) CI/CD Server (Pipeline Executor) Release Test Deploy Build
  25. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 34 The Continuous

    Delivery Deployment Pipeline Overview Developer Version Control Production Environment Code check-in Application release query check-out Business push button Customer use app each check-in triggers a pipeline run a build advances along the pipeline in stages (in case of error, the pipeline is stopped) CI/CD Server (Pipeline Executor) Release Test Deploy Build
  26. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 35 The Continuous

    Delivery Deployment Pipeline Overview Developer Business Fast Feedback Loops
  27. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 36 The Continuous

    Delivery Deployment Pipeline 1. Commit Stage Version Control Local Directory Code retrieve
  28. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 37 The Continuous

    Delivery Deployment Pipeline 1. Commit Stage Version Control Local Directory Code retrieve Unit Tests run fast-running, environment agnostic tests
  29. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 38 The Continuous

    Delivery Deployment Pipeline 1. Commit Stage Version Control Local Directory Code retrieve Unit Tests Code Analyses run run fast-running, environment agnostic tests
  30. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 39 The Continuous

    Delivery Deployment Pipeline 1. Commit Stage Version Control Local Directory Code retrieve Unit Tests Release Artifact Code Analyses run run build fast-running, environment agnostic tests
  31. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 40 The Continuous

    Delivery Deployment Pipeline 1. Commit Stage Version Control Local Directory Unit Tests Release Artifact Code Analyses Artifact Repository store Code retrieve run run build fast-running, environment agnostic tests artifacts are built exactly once and kept for later stages
  32. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 41 The Continuous

    Delivery Deployment Pipeline 2. Acceptance Testing Stage Release Artifact retrieve Artifact Repository Local Directory
  33. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 42 The Continuous

    Delivery Deployment Pipeline 2. Acceptance Testing Stage Release Artifact retrieve Artifact Repository Local Directory configure Staging Environment
  34. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 43 The Continuous

    Delivery Deployment Pipeline 2. Acceptance Testing Stage Release Artifact retrieve Artifact Repository Local Directory Release Artifact configure deploy Staging Environment
  35. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 44 The Continuous

    Delivery Deployment Pipeline 2. Acceptance Testing Stage Release Artifact retrieve Artifact Repository Local Directory Release Artifact Smoke Tests configure deploy run Staging Environment
  36. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 45 The Continuous

    Delivery Deployment Pipeline 2. Acceptance Testing Stage Release Artifact Smoke Tests Acceptance Tests long-running tests Release Artifact retrieve Artifact Repository Local Directory configure deploy run run Staging Environment
  37. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 46 The Continuous

    Delivery Deployment Pipeline 3. Exploratory Testing Stage Release Artifact retrieve Artifact Repository Local Directory
  38. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 47 The Continuous

    Delivery Deployment Pipeline 3. Exploratory Testing Stage Release Artifact retrieve Artifact Repository Local Directory configure Staging Environment
  39. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 48 The Continuous

    Delivery Deployment Pipeline 3. Exploratory Testing Stage Release Artifact retrieve Artifact Repository Local Directory Release Artifact configure deploy Staging Environment
  40. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 49 The Continuous

    Delivery Deployment Pipeline 3. Exploratory Testing Stage Release Artifact retrieve Artifact Repository Local Directory Release Artifact Smoke Tests configure deploy run Staging Environment
  41. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 50 The Continuous

    Delivery Deployment Pipeline 3. Exploratory Testing Stage Release Artifact Smoke Tests Exploratory Tests manual tests Release Artifact retrieve Artifact Repository Local Directory configure deploy run run Staging Environment
  42. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 51 The Continuous

    Delivery Deployment Pipeline 4. Release Stage Release Artifact retrieve Artifact Repository Local Directory
  43. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 52 The Continuous

    Delivery Deployment Pipeline 4. Release Stage Release Artifact retrieve Artifact Repository Local Directory configure Production Environment
  44. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 53 The Continuous

    Delivery Deployment Pipeline 4. Release Stage Release Artifact retrieve Artifact Repository Local Directory Release Artifact configure deploy Production Environment
  45. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 54 The Continuous

    Delivery Deployment Pipeline 4. Release Stage Release Artifact Smoke Tests Release Artifact retrieve Artifact Repository Local Directory configure deploy run Production Environment
  46. MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 55 The Continuous

    Delivery Deployment Pipeline Overview Developer Version Control Production Environment Code check-in Application release query check-out Business push button Customer use app each check-in triggers a pipeline run a build advances along the pipeline in stages (in case of error, the pipeline is stopped) CI/CD Server (Pipeline Executor) Release Test Deploy Build