Application Controller for Incremental Cloud Deployment

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing process of deploying and updating cloud-based applications is time- and resource-intensive, as it requires killing and re-deploying containers associated with new TCP ports for each modification, which hampers efficient development and incremental deployment.

Innovation Solution

An application controller acts as a wrapper within the container, managing external TCP ports and routing requests, allowing for hot-deployment of static resources and incremental updates without re-instantiating containers, and provides a plugin mechanism for supporting various application types through a reverse proxy and extensible framework.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the container is killed and re-deployed for each modification, then the application updates are complete, but the deployment time and resource consumption increase

Engineering Contradiction:
Improveapplication update completenessVSAvoiddeployment time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system segments the deployment process by introducing an application controller that independently manages application updates within the container. The controller can reload application code and resources without killing the container process, separating the update mechanism from the container lifecycle.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The application controller acts as an intermediary between the deployment system and the application. It receives deployment requests, manages resource updates, and coordinates with the application without requiring container re-instantiation, thereby reducing deployment time while ensuring complete updates.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If the container is killed and re-deployed for each modification, then the application updates are complete, but the resource consumption increases

Engineering Contradiction:
Improveapplication update completenessVSAvoidresource consumption
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The system segments the deployment process by introducing an application controller that independently manages application updates within the container. The controller can reload application code and resources without killing the container process, separating the update mechanism from the container lifecycle.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The application controller discards and recovers resources efficiently during updates. Instead of killing the entire container, it selectively updates application resources (code, static files, configurations) while preserving the container infrastructure, thereby reducing resource consumption during deployment.

Inventive Principle:
Principle #34Discarding and recovering

3Reliability

If a new container is instantiated for each deployment, then the application is updated, but the complexity of port management increases

Engineering Contradiction:
Improveapplication update completenessVSAvoidport management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The application controller provides universal port management functionality. It maintains a persistent TCP port for the container while dynamically managing application requests, allowing multiple applications to be updated without changing port assignments. This eliminates the need to reassign ports with each deployment.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The application controller acts as an intermediary that manages port assignments and request routing. It receives external requests on the container's TCP port, determines the target application, and forwards requests accordingly, simplifying port management compared to assigning unique ports to each container instance.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Reliability

If the application is re-deployed to a new container, then the modifications are reflected, but the development efficiency decreases

Engineering Contradiction:
Improvemodification reflectionVSAvoiddevelopment efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system segments the deployment process by introducing an application controller that independently manages application updates within the container. The controller can reload application code and resources without killing the container process, separating the update mechanism from the container lifecycle.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The application controller enables continuous operation during updates. The container remains active and serves requests throughout the update process, allowing incremental deployments and hot-reloading of resources without interrupting service, thereby maintaining development efficiency.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS9935828B2Application controller to support incremental deployment
Publication Date: 2018.04.03 SAP SE
  • US9935828B2 patent drawing
  • US9935828B2 patent drawing
  • US9935828B2 patent drawing

AI summary

A system includes reception of a request associated with a cloud-based application at an external port of a container associated with the cloud-based application, passage of the request to an application controller associated with the cloud-based application, determination of whether the request includes a command to modify the cloud-based application, invocation of a function to execute the command if it is determined that the request includes a command to modify the cloud-based application, and forwarding of the request to the cloud-based application at a second port different from the external port if it is determined that the request does not include a command to modify the cloud-based application.