Differencing Disk for Continuous Software Deployment Rollback
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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
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.
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
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.
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
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.
Data Source
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.


