Deployment Pipeline Waves for Enterprise Application Rollout
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In continuous integration/continuous deployment systems, deploying applications to large enterprises' production environments can result in faults due to configuration differences and varying data across computer systems, as existing methods lack controlled deployment strategies to assess application performance on specific systems before enterprise-wide deployment.
Innovation Solution
Implementing a deployment pipeline with sequential waves, where the initial waves allow user-defined deployment to specific systems, followed by universal waves deploying to fixed subsets and eventually all systems, to limit the impact of faulty deployments and ensure application operability across different configurations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If deployment is performed to all enterprise systems simultaneously, then deployment speed is improved, but the risk of widespread faults increases due to configuration differences and varying data across systems
Solution Approach 1:
The deployment process is divided into multiple sequential waves, where each wave deploys to a specific subset of systems. The first wave targets systems matching predefined criteria, the second wave targets remaining systems, and subsequent waves handle edge cases. This segmentation allows controlled rollout while maintaining overall deployment progress.
Solution Approach 2:
Before full enterprise-wide deployment, the system performs preliminary deployment waves to specific system subsets that match predetermined criteria. These preliminary actions allow validation of application performance on representative systems before committing to enterprise-wide deployment, reducing the risk of widespread faults.
2Reliability
If deployment is performed to specific systems first through multiple waves, then deployment reliability is improved by limiting fault impact, but deployment time increases due to sequential execution
Solution Approach 1:
The deployment pipeline dynamically adjusts the number and scope of waves based on application requirements and enterprise environment. The system can configure wave criteria, system subsets, and execution parameters dynamically, allowing optimization between reliability and time consumption for different deployment scenarios.
Solution Approach 2:
The system allows modification of deployment parameters such as wave count, system selection criteria, and parallel execution settings. By changing these parameters, users can balance deployment reliability (more waves, smaller subsets) against deployment time (fewer waves, larger subsets) based on specific needs.
3Stability of the object's composition
If a fixed deployment pipeline is used for all applications, then deployment consistency is improved, but adaptability to different application requirements deteriorates
Solution Approach 1:
The deployment pipeline controller provides a universal platform that handles multiple deployment scenarios through a common interface. It supports both fixed enterprise-wide deployment patterns and customized application-specific patterns, allowing the same system to serve diverse deployment needs while maintaining consistent operational procedures.
Solution Approach 2:
The system performs preliminary configuration where application-specific deployment parameters are defined before execution. This allows customization of wave criteria, system targets, and deployment settings for each application while maintaining the structured multi-wave pipeline framework, achieving both consistency and adaptability.
Data Source
AI summary
A computer-implemented method includes defining a deployment pipeline for each application of a collection of applications, the deployment pipeline comprising an ordered plurality of waves of deployment wherein the ordered plurality of waves of deployment comprises a set wave of deployment and a variable wave of deployment with the set wave of deployment comprising deployment to a plurality of locations that is the same for each application in the collection of applications. For each application in the collection of applications, a list of locations selected by a respective user for the variable wave of deployment is received such that two applications of the collection of applications deploy to different locations during their respective variable wave of deployment. An indication that the build of the application has been created is received and in response, one of the plurality of waves of deployment is executed.


