Software Update Management via Shadow Deployment

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software update methods in datacenters often result in significant downtime and complexity due to siloed and varied software deployments, making it difficult to standardize and manage updates across multiple targets effectively.

Innovation Solution

A computer-implemented update management system that maintains a standard software image, allowing for zero or minimal downtime updates by deploying new versions while keeping older versions active, using a circular buffer of software versions and virtual homes to manage updates across multiple targets, and employing policy-driven approaches for scheduling and activation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If patches are applied individually on a per target software deployment basis, then updates can be applied to each target, but significant downtime occurs for each target while patches are being applied

Engineering Contradiction:
Improveupdate applicabilityVSAvoiddowntime
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The software deployment is segmented into multiple versions (current version and updated version) that can coexist on the same target. The update management system divides the update process into distinct phases: deploying the updated version as a shadow deployment while the current version remains active, then switching between versions without requiring target shutdown. This segmentation allows updates to be applied without downtime.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The updated version is deployed in advance as a shadow deployment before the current version is deactivated. The update management system prepares the updated version on the target host while it is still running with the current version, performs validation checks, and only activates it after confirming readiness. This preliminary action eliminates the need for downtime during the update switch.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If patches are applied individually on a per target software deployment basis, then updates can be customized for each target, but the process becomes complex and difficult to manage across multiple targets

Engineering Contradiction:
Improveupdate customizationVSAvoidmanagement complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The update management system provides a universal platform that can manage updates across multiple diverse target hosts with different software versions and configurations. It offers multiple deployment strategies (immediate deployment, delayed deployment, shadow deployment) and activation modes that can be applied uniformly across all targets, simplifying management while maintaining adaptability to specific target requirements through policy-based control.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The update management system acts as an intermediary between the update source and multiple target hosts, abstracting the complexity of individual target management. It maintains a queue of targets to be updated, manages deployment policies, coordinates shadow deployments, and handles activation switching centrally. This intermediary role consolidates management complexity into a single system rather than requiring individual management of each target.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of manufacture

If the target software deployment is stopped to apply patches, then the binary executable can be modified, but the software deployment experiences downtime

Engineering Contradiction:
Improvepatch application capabilityVSAvoiddowntime
Core Design Contradiction:
Ease of manufactureVSLoss of time

Solution Approach 1:

Instead of modifying the running binary executable, the system creates a copy of the updated version and deploys it as a shadow deployment on the same target host. The original binary remains unchanged and continues to run, while the copied updated version is prepared separately, validated, and then activated by switching the target to use the new copy. This copying approach allows patch application without stopping the deployment.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The update management system serves as an intermediary that manages the transition between old and new versions without requiring the target to stop. It coordinates the shadow deployment, performs validation, and controls the activation switching mechanism, enabling seamless updates while the target remains operational throughout the process.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Loss of time

If multiple software versions are maintained on target hosts, then zero or minimal downtime updates are enabled, but more storage space is required on each target

Engineering Contradiction:
ImprovedowntimeVSAvoidstorage space
Core Design Contradiction:
Loss of timeVSVolume of stationary object

Solution Approach 1:

The system segments the software versions into distinct directories (current version and shadow version) on the target host file system. Each version is stored separately, allowing independent management and validation. The shadow version occupies additional storage space temporarily, but this segmentation enables the zero-downtime update mechanism by allowing the target to switch between versions without reinstallation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system implements a mechanism to discard the shadow version after successful activation and recover the storage space it occupied. Once the updated version is activated and validated, the previous version (which becomes the shadow version) can be safely removed from the target host, freeing up the storage space it was consuming. This cyclical process of creating, using, and discarding shadow versions manages storage requirements dynamically.

Inventive Principle:
Principle #34Discarding and recovering

Data Source

PatentUS10095501B2Deployment and activation of updates on target hosts
Publication Date: 2018.10.09 ORACLE INT CORP
  • US10095501B2 patent drawing
  • US10095501B2 patent drawing
  • US10095501B2 patent drawing

AI summary

Techniques are described for managing updates across one or more targets using standard software images. In one embodiment, a first version of a software application is deployed on a set of one or more targets. A software binary is then generated for an updated version of the software application. The software binary for the updated version of the software application is deployed to the set of one or more targets. While the software binary for the updated version of the software application is deployed, the previous version of the software application remains active on a particular target. The updated version of the software application is activated, using the software binary, on the particular target.