Zero Downtime Software Upgrade via Dynamic Deployment Configuration
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing maintenance procedures for software and databases often result in downtime, making zero downtime upgrades an elusive goal, and require additional resources for data copying and processing.
Innovation Solution
Implementing a computer-implemented method for zero downtime upgrades by selectively permitting deployment of upgrade packages based on object types, using a deployment configuration that specifies constraints and deployment options, allowing for parallel execution of procedures and deployment of additional changes during ongoing maintenance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional maintenance procedures are used to upgrade software or databases, then the maintenance operations can be completed, but the system must be taken offline resulting in downtime and user inability to interact with the application
Solution Approach 1:
The upgrade process is segmented into multiple independent phases: creating a target system instance, deploying changes to the target system, validating the target system, and finally switching traffic. This segmentation allows the upgrade to proceed without taking the production system offline, as each phase can be completed independently while the original system continues to serve users.
Solution Approach 2:
The target system is created and all upgrade changes are deployed to it before the production system is taken offline. This preliminary action includes copying data, applying patches, and configuring the new system in advance, so that when the switch occurs, the target system is already ready to immediately serve users without interruption.
2Ease of manufacture
If the system is taken offline for maintenance operations, then maintenance can be performed, but users are unable to interact with the application resulting in service interruption
Solution Approach 1:
A target system instance is introduced as an intermediary between the original production system and the users. This intermediary system receives all upgrade changes, validations, and preparations while the production system continues to operate normally. Once the target system is fully prepared and validated, it becomes the new production system without interrupting user service.
Solution Approach 2:
A complete copy of the production system is created as the target system. This copy includes all data, configuration, and structure. The upgrade changes are then applied to this copy rather than the live system, allowing maintenance operations to be performed on the copy without affecting the original system's ability to serve users.
3Adaptability or versatility
If additional changes need to be deployed during an ongoing zero downtime upgrade, then corrections can be made, but traditionally the entire procedure must be restarted resulting in increased runtime
Solution Approach 1:
The deployment configuration is made dynamic and adjustable during the upgrade process. Instead of being fixed at the beginning, the configuration can be modified to add, remove, or modify changes in the upgrade package. This dynamic adaptability allows corrections and additional changes to be integrated without restarting the entire upgrade procedure, significantly reducing runtime while maintaining flexibility.
4Reliability
If data copying is performed for maintenance procedures, then the maintenance can be executed, but additional resources such as computer processing and memory are required
Solution Approach 1:
The data copying and system duplication operations are extracted from the critical production system and performed on a separate target system instance. This extraction isolates the resource-intensive operations from the production environment, allowing them to consume additional processing and memory resources without impacting the performance or stability of the live system that users are interacting with.
Data Source
AI summary
Methods, systems, and computer-readable storage media for deploying upgrade packages during zero downtime upgrade of production systems include actions of receiving an upgrade package, the upgrade package defining one or more changes to be deployed to a system that has already undergone partial deployment during a zero downtime upgrade, and including one or more objects having respective object types, receiving a deployment configuration, the deployment configuration providing a plurality of lists of object types for respective constraints and, for each list of object types, specifying a deployment option for object types in the respective list of object types, determining a set of object types included in the upgrade package, the set of object types comprising one or more object types, and selectively permitting deployment of the upgrade package to execute the one or more changes based on the set of object types and the plurality of lists of object types.


