Resilient Software Upgrades in Virtual Datacenters
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for software upgrades in virtual datacenters are prone to errors and data corruption, requiring manual snapshotting of APPVMs and containers, which can be complex and prone to human error, especially in large-scale environments, leading to potential downgrading of successfully upgraded servers during failed upgrades.
Innovation Solution
The implementation of 'upgrade helpers' residing in hypervisors or APPVMs that periodically collect network flow data and deep packet inspection information to determine dependency relationships and automatically take snapshots of affected APPVMs or containers before initiating upgrades, ensuring resilient software upgrades and easy rollback in case of failures.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If manual snapshotting is performed by IT administrators, then snapshots can be taken of APPVMs and containers, but the process is prone to human error and complexity especially in large-scale environments
Solution Approach 1:
The system performs self-service by automatically detecting dependencies between APPVMs and containers, identifying affected components, and taking snapshots without human intervention. The upgrade helper agents on each virtual machine automatically communicate with the centralized management server to report their status and dependencies, eliminating the need for administrators to manually determine which APPVMs and containers need snapshots.
Solution Approach 2:
The manual mechanical process of administrators writing code and calling CLI/API commands is replaced with an automated software system. The centralized management server uses packet broker technology to automatically discover dependencies by analyzing network traffic patterns, and automatically triggers snapshot operations through APIs, replacing the manual mechanical operations with an automated information-processing system.
2Productivity
If all APPVMs and containers are upgraded simultaneously, then upgrade process is simplified, but failure in one server may result in downgrading other successfully upgraded servers
Solution Approach 1:
The upgrade process is segmented into independent phases: first, dependencies are discovered and affected APPVMs are identified; second, snapshots are taken of only the affected components; third, upgrades are performed on identified APPVMs; and fourth, if failure occurs, rollback is performed only on the affected APPVMs. This segmentation allows parallel processing of independent segments while isolating failure impact to specific segments.
Solution Approach 2:
Before the upgrade is initiated, the system performs preliminary actions by discovering dependencies, identifying affected APPVMs, and taking snapshots of those affected components. This preliminary preparation ensures that if an upgrade fails, the system has already prepared the necessary rollback information, allowing quick restoration without affecting other successfully upgraded servers.
3Measurement precision
If IT administrators write complex logic to determine APPVM and container dependencies, then accurate dependency mapping can be achieved, but the code can have bugs and requires specialized knowledge
Solution Approach 1:
The system introduces a packet broker as an intermediary component that automatically discovers dependencies by analyzing network traffic between APPVMs and containers. Instead of requiring administrators to write complex dependency-detection logic, the packet broker passively monitors network packets and automatically builds the dependency graph, transferring the complex measurement task from human operators to an automated intermediary system.
Solution Approach 2:
The manual process of administrators writing and maintaining complex dependency-detection code is replaced with an automated packet analysis system. The centralized management server uses packet broker technology to automatically discover dependencies by analyzing network traffic patterns, replacing the mechanical process of code writing and maintenance with an automated information-processing system that requires no specialized programming knowledge.
Data Source
AI summary
In one example, resilient software application upgrades in a virtual datacenter is disclosed, in which network flow data is periodically obtained between a plurality of APPVMs and/or containers and deep packet inspection information from firewalls associated with the obtained network flow data in the virtual datacenter. Dependency relationships between the plurality of APPVMs and/or containers are then obtained based on the periodically obtained network flow data, the periodically obtained deep packet inspection information, and a network flow criteria. An upgrade that is about to happen to a software residing in one or more of the plurality of APPVMs and/or containers is determined. One or more of the plurality of APPVMs and/or containers affected by the software upgrade is determined based on the determined dependency relationships. Snapshots of the affected one or more of the plurality of APPVMs and/or containers are then obtained before initiating the software upgrade.


