Hot Deployment in Cloud Application Containers via SSH Tunnel

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current cloud-computing environments restrict software application development by requiring the termination and restart of application containers for modifications, leading to inefficient and costly development activities due to resource-intensive redeployment processes.

Innovation Solution

A method that allows for the modification of software application content within a cloud-deployed application container without terminating it, using a secure shell tunnel and SSH file transfer protocol to update runtime content, enabling incremental and hot deployment without restarting the application.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the application container is terminated and restarted for modifications, then the software application content can be updated, but the development time increases and computing resources are consumed

Engineering Contradiction:
Improvesoftware application content updateVSAvoiddevelopment time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

A development interface is introduced as an intermediary component that enables communication between the external development environment and the running application container. This interface allows modification commands to be transmitted to the container without requiring termination, thus resolving the contradiction between maintaining container operation and updating application content.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The application container is transformed from a static, immutable entity to a dynamic, modifiable system. The container accepts runtime modification commands through the development interface, allowing its content to be changed while it remains operational, thereby eliminating the need for restart cycles and reducing development time.

Inventive Principle:
Principle #15Dynamics

2Reliability

If the application container is terminated and restarted for modifications, then the software application content can be updated, but the computing resources are consumed

Engineering Contradiction:
Improvesoftware application content updateVSAvoidcomputing resources
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The development interface serves as a mediator that enables content updates without container termination. By transmitting modification commands through this interface, the system avoids the resource-intensive restart process while still achieving the desired content updates, thus reducing computing resource consumption.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The application container maintains continuous operation throughout the modification process. Instead of interrupting the container's execution for updates, the system enables continuous useful action by applying changes to the running container, thereby conserving computing resources that would otherwise be wasted on startup and shutdown cycles.

Inventive Principle:
Principle #20Continuity of useful action

3Reliability

If the application container is terminated for modifications, then the software application content can be updated, but the productivity decreases

Engineering Contradiction:
Improvesoftware application content updateVSAvoiddevelopment productivity
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The development interface acts as an intermediary that streamlines the content update process. Developers can issue modification commands that are directly applied to the running container through this interface, eliminating the time-consuming termination and restart cycle and thereby显著提高 development productivity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system enables preliminary modifications to be made to the application content while the container is still running. Developers can prepare and apply changes without waiting for container shutdown, allowing iterative development and immediate testing of modifications, which accelerates the overall development cycle and improves productivity.

Inventive Principle:
Principle #10Preliminary action

4Reliability

If the communication port is reserved exclusively to application logic, then the application security is maintained, but the access to application process is restricted

Engineering Contradiction:
Improveapplication securityVSAvoidaccess to application process
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The communication architecture is segmented into multiple interfaces: the original communication port reserved for application logic maintains security, while a separate development interface is introduced for process access and modification. This segmentation allows both security and adaptability to coexist by assigning different functions to different communication channels.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The development interface serves as a specialized intermediary that provides controlled access to the application process for development purposes. This separate interface does not compromise the security of the main application communication port while enabling the necessary process access for modifications, debugging, and monitoring activities.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10747528B2Modification of software application content within a cloud-deployed application container
Publication Date: 2020.08.18 SAP PORTALS ISRAEL
  • US10747528B2 patent drawing
  • US10747528B2 patent drawing
  • US10747528B2 patent drawing

AI summary

A command is received in a cloud-computing environment from an integrated development environment (IDE), where the command is to update runtime software application content in an application container associated with the runtime software application content, and where the command contains new software application content. Without terminating the application container, a connection is opened to the application container using the application container name as an identifier, and at least some of the runtime software application content in the application container is modified using the new software application content.