Resilient Software Upgrades in Virtual Datacenters

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

VSEngineering 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

Engineering Contradiction:
Improvesnapshot reliabilityVSAvoidmanual operation complexity
Core Design Contradiction:
ReliabilityVSEase of operation

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.

Inventive Principle:
Principle #25Self-service

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.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical 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

Engineering Contradiction:
Improveupgrade speedVSAvoidupgrade stability
Core Design Contradiction:
ProductivityVSReliability

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improvedependency detection accuracyVSAvoidcode complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS10481897B2System and method for resilient software upgrades in a virtual datacenter
Publication Date: 2019.11.19 VMWARE INC
  • US10481897B2 patent drawing
  • US10481897B2 patent drawing
  • US10481897B2 patent drawing

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.