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
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.
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.
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.
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.
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.
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.
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
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
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
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
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
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
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
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
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
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
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
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
MARTIN ETMAJER Founder | GetCloudnative e.U. Slide 36 The Continuous Delivery Deployment Pipeline 1. Commit Stage Version Control Local Directory Code retrieve
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
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
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
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
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