Software Update Management via Shadow Deployment
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
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.
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
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.
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.
Data Source
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.


