Differencing Disk for Continuous Software Deployment Rollback

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In hosted computing environments, updating software can be resource-intensive and error-prone due to interdependencies between components, requiring manual processes and potentially impacting performance, with rolling back updates being difficult and costly.

Innovation Solution

A deployment controller manages code deployment to virtual machines using workflows, differencing disks, and traffic management to ensure smooth updates, testing, and rollback processes, reducing resource consumption and minimizing performance impact.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual processes are used to update hosted software, then updates can be carefully controlled and verified, but resource consumption increases and update speed decreases

Engineering Contradiction:
Improveupdate reliabilityVSAvoidupdate speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies preliminary action by creating a differencing disk that captures all software changes before deployment. This differencing disk is prepared in advance and can be rapidly deployed to multiple servers simultaneously, maintaining update reliability while dramatically increasing update speed compared to manual processes.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses copying by creating a virtual hard drive copy of the software state at a specific point in time. This virtual hard drive copy serves as a rollback point, allowing rapid recovery if updates fail, thus maintaining reliability while enabling faster update cycles through automated rollback capabilities.

Inventive Principle:
Principle #26Copying

2Ease of manufacture

If complete software versions are distributed to data center hosts, then deployment is straightforward, but bandwidth consumption and storage requirements increase significantly

Engineering Contradiction:
Improvedeployment simplicityVSAvoidbandwidth consumption
Core Design Contradiction:
Ease of manufactureVSLoss of substance

Solution Approach 1:

The patent extracts only the essential changes from the complete software version by creating a differencing disk that contains only the differences between software versions. This extracted difference data is much smaller than complete software images, reducing bandwidth consumption and storage requirements while maintaining deployment simplicity through automated application of these differences.

Inventive Principle:
Principle #2Taking out (Extraction)

3Adaptability or versatility

If host resources are updated independently, then each component can be updated separately for flexibility, but coordination errors may occur and system reliability decreases

Engineering Contradiction:
Improveupdate flexibilityVSAvoidsystem reliability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent applies preliminary action by capturing the state of all host resources in a differencing disk before updates are applied. This pre-captured state serves as a coordinated rollback point, ensuring that even though resources are updated independently for flexibility, the system can reliably rollback to a known good state if coordination errors occur.

Inventive Principle:
Principle #10Preliminary action

4Reliability

If software updates are rolled back in the event of errors, then service continuity can be maintained, but the rollback process is time-consuming and resource-intensive

Engineering Contradiction:
Improveservice continuityVSAvoidrollback time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent uses copying by creating a virtual hard drive copy of the software state before updates. This copy serves as a pre-prepared rollback point that can be rapidly restored by simply switching back to the previous virtual hard drive image, dramatically reducing rollback time and resource consumption compared to manual reinstallation processes.

Inventive Principle:
Principle #26Copying

5Manufacturing precision

If manual verification is performed before each software update, then update quality can be ensured, but the update process becomes resource-intensive and difficult to scale

Engineering Contradiction:
Improveupdate qualityVSAvoidupdate efficiency
Core Design Contradiction:
Manufacturing precisionVSProductivity

Solution Approach 1:

The patent uses copying to create a virtual hard drive copy that captures the exact software state before updates. This copy can be used for automated testing and verification processes, ensuring update quality through systematic checking while enabling parallel processing that improves overall update efficiency and scalability.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS8732693B2Managing continuous software deployment
Publication Date: 2014.05.20 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8732693B2 patent drawing
  • US8732693B2 patent drawing
  • US8732693B2 patent drawing

AI summary

Concepts and technologies are described herein for managing continuous software deployment. A deployment controller can manage deployment of code to a data center. The deployment controller can execute workflows for checking in, verifying, deploying the code, or other processes. The code can be deployed using a differencing disk that includes data indicating changes between software hosted by the data center and a version of software resulting from deployment of the code. The differencing disk can be linked to the disk or virtual resource hosting the software and executed collectively to provide an updated version of the software. Traffic to one or more virtual machines of the data center can be controlled by the deployment controller. If errors are detecting during deployment or after updating, the update can be rolled back.