Distributed Multicloud Application Bundle Deployment
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Updating applications deployed across multiple nodes in cloud computing environments is slow and cumbersome due to the need for complete rebuilding of node assemblies, manual identification of changes, and lack of automated deployment from multiple code repositories.
Innovation Solution
A distribution client interacts with a distribution server at each node to automatically identify and deploy only the changed bundles of the node assembly, using hierarchical configuration files to determine which bundles need updating and replacing only those bundles, thereby reducing deployment time and downtime.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a change is made to the application, then the application needs to be updated, but completely rebuilding the node assembly increases wait time and deployment time
Solution Approach 1:
The node assembly is segmented into multiple bundles that can be independently identified, built, and deployed. When a change is made to the application, the system identifies which specific bundles are affected and only rebuilds those bundles rather than the entire node assembly. This segmentation enables partial updates, significantly reducing deployment time and wait time while maintaining application update capability.
2Reliability
If the existing node assembly is replaced with a completely rebuilt node assembly, then the application can be updated, but application downtime increases
Solution Approach 1:
By segmenting the node assembly into independent bundles, the system can update only the affected bundles while leaving other bundles running. This allows for incremental deployment where updated bundles are activated without taking down the entire application, thereby reducing application downtime while maintaining update capability.
Solution Approach 2:
The system performs preliminary actions by building updated bundles in advance and staging them for deployment. The distribution client identifies changes, builds the affected bundles, and prepares them for deployment before actually replacing the running bundles. This preliminary preparation reduces the actual deployment time and minimizes application downtime.
3Loss of information
If manual identification of changes is performed, then changes can be tracked, but the process becomes cumbersome and error-prone
Solution Approach 1:
The distribution client automatically performs change identification and bundle selection without requiring manual intervention. The system self-services by monitoring code repositories, detecting changes, determining which bundles are affected, and preparing the appropriate bundles for deployment. This automation eliminates the cumbersome manual process while maintaining accurate change tracking.
Solution Approach 2:
The system implements feedback mechanisms where the distribution client continuously monitors code repositories for changes, receives notifications of modifications, and automatically processes the change information. This feedback loop enables automatic change tracking and bundle identification, making the process both accurate and easy to operate without manual intervention.
4Ease of operation
If the application is built from a single code repository and distributed to nodes one at a time, then deployment can be controlled, but deployment efficiency decreases
Solution Approach 1:
The system merges multiple code repositories into a unified build process managed by the distribution client. Instead of building from single repositories and distributing sequentially, the distribution client can aggregate changes from multiple repositories, build all affected bundles in parallel, and distribute them simultaneously to multiple nodes. This combining approach maintains deployment control through centralized management while dramatically improving deployment efficiency.
Solution Approach 2:
The distribution client performs preliminary actions by identifying all affected bundles across multiple repositories, building them in advance, and staging them for deployment. This preliminary preparation allows for batch deployment to multiple nodes simultaneously rather than sequential distribution, improving efficiency while maintaining control through the centralized distribution client architecture.
Data Source
AI summary
Disclosed herein are system, method, and computer program product embodiments for distributing an application across multiple nodes. An embodiment operates by determining a first local state of a first bundle and a second local state of a second bundle, wherein the application comprises the first bundle and the second bundle. The embodiment calculates the first bundle is to be stored at a first node and the second bundle is to be stored at a second node based on a first level configuration file and a second level configuration file. The embodiment compares the first local state of the first bundle to a first remote state of the first node and the second local state of the second bundle to a second remote state of the second node. The embodiment then transmits the first bundle to the first node and the second bundle to the second node.


