Zero Downtime Software Upgrade via Dynamic Deployment Configuration

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvesystem availabilityVSAvoiddowntime
Core Design Contradiction:
ReliabilityVSLoss of time

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improvemaintenance capabilityVSAvoidservice continuity
Core Design Contradiction:
Ease of manufactureVSProductivity

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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.

Inventive Principle:
Principle #26Copying

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

Engineering Contradiction:
Improvedeployment flexibilityVSAvoidupgrade runtime
Core Design Contradiction:
Adaptability or versatilityVSDuration of action of moving object

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.

Inventive Principle:
Principle #15Dynamics

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

Engineering Contradiction:
Improvemaintenance executionVSAvoidresource consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

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.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10871962B2Zero downtime maintenance in constrained systems
Publication Date: 2020.12.22 SAP SE
  • US10871962B2 patent drawing
  • US10871962B2 patent drawing
  • US10871962B2 patent drawing

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.