Deployment Proxy Service for Incremental Artifact Updates

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional systems face inefficiencies and costs in deploying applications over networks due to the need for frequent, complete uploads of large software artifacts, especially when modifications are incremental, and often encounter transmission obstacles like firewalls.

Innovation Solution

Implementing a deployment system that determines the specific software artifacts needed for incremental updates by comparing versions and using a proxy layer for partial uploads, along with a distributed cache for efficient data transfer and storage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If complete software artifacts are uploaded for every deployment, then the application can be deployed, but the deployment process becomes slow and inefficient

Engineering Contradiction:
Improvedeployment speedVSAvoidupload time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments the software artifact into multiple components (application code, dependencies, configuration files) and identifies only the changed portions for transmission. The build system performs incremental compilation and packaging, transmitting only the necessary segments rather than the complete artifact, thereby reducing upload time while maintaining deployment completeness.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts and transmits only the changed or updated portions of the software artifact rather than the complete artifact. The system identifies modified files, compiles only those portions, and transmits the extracted differences to the remote server, eliminating the need to upload unchanged components and significantly reducing transmission time.

Inventive Principle:
Principle #2Taking out (Extraction)

2Reliability

If large software artifacts are transmitted, then the application can be deployed, but the transmission becomes expensive and slow

Engineering Contradiction:
Improvedeployment completenessVSAvoidnetwork bandwidth consumption
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent applies partial action by transmitting only the necessary portion of the software artifact required for the deployment update. Instead of sending complete artifacts, the system calculates and transmits only the delta or changed components, consuming less network bandwidth while still achieving complete and reliable deployment of the updated application.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent performs preliminary actions by pre-compiling and pre-packaging the software artifact locally before transmission. The build system compiles the application, resolves dependencies, and prepares the artifact in advance, then transmits only the necessary portions to the remote server. This preliminary processing reduces the size and complexity of what needs to be transmitted over the network.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If complete artifacts are uploaded frequently, then incremental updates can be deployed, but the process becomes time-consuming and burdensome

Engineering Contradiction:
Improveincremental update capabilityVSAvoiddeployment time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent segments the deployment process into identification of changed files, selective compilation, and targeted packaging. By dividing the artifact into manageable segments and identifying which segments have changed, the system enables incremental updates without requiring complete re-upload, making the process adaptable to frequent changes while reducing time consumption.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the parameter of transmission from complete artifact size to changed portion size. The system dynamically adjusts what gets transmitted based on the actual changes detected in the source code, allowing incremental updates to be performed quickly by transmitting only the parameter-necessary data rather than fixed complete artifacts.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11016749B1Architecture for incremental deployment
Publication Date: 2021.05.25 AMAZON TECH INC
  • US11016749B1 patent drawing
  • US11016749B1 patent drawing
  • US11016749B1 patent drawing

AI summary

A deployment proxy service is provided to manage communications between a client device and a deployment service. The deployment proxy service receives upload requests from the client device and saves software artifacts associated with the upload request in a proxy repository. The deployment proxy service determines a continuation deployment action that describes information about a target machine to which the software artifacts are applicable. When appropriate, the deployment proxy service provides information to the deployment service that enables the deployment service to deploy the software artifacts to the target machine (e.g., to update an application of the target machine).