Distributed Multicloud Application Bundle Deployment

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

VSEngineering 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

Engineering Contradiction:
Improveapplication update capabilityVSAvoiddeployment time
Core Design Contradiction:
ReliabilityVSLoss of 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.

Inventive Principle:
Principle #1Segmentation

2Reliability

If the existing node assembly is replaced with a completely rebuilt node assembly, then the application can be updated, but application downtime increases

Engineering Contradiction:
Improveapplication update capabilityVSAvoidapplication downtime
Core Design Contradiction:
ReliabilityVSDuration of action of moving object

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #10Preliminary action

3Loss of information

If manual identification of changes is performed, then changes can be tracked, but the process becomes cumbersome and error-prone

Engineering Contradiction:
Improvechange trackingVSAvoiddeployment process ease
Core Design Contradiction:
Loss of informationVSEase of operation

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.

Inventive Principle:
Principle #25Self-service

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.

Inventive Principle:
Principle #23Feedback

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

Engineering Contradiction:
Improvedeployment controlVSAvoiddeployment efficiency
Core Design Contradiction:
Ease of operationVSProductivity

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.

Inventive Principle:
Principle #5Merging (Combining)

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.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11330079B2Environment for developing of distributed multicloud applications
Publication Date: 2022.05.10 ONX MATERIALS INC
  • US11330079B2 patent drawing
  • US11330079B2 patent drawing
  • US11330079B2 patent drawing

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.