Automated Application Deployment Service for Fleet Coordination

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Deploying software to a large fleet of network hosts is complex and time-consuming, often impacting application performance, even for skilled system administrators, due to the need for manual tasks and coordination across multiple software components.

Innovation Solution

A deployment service that automates software deployment across hosts, allowing administrators to define deployment configurations, schedules, and failure conditions, using a centralized service to coordinate deployments and manage lifecycle events, with options for rolling deployments, in-place deployments, and replacement deployments to minimize performance impact.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If manual deployment tasks are performed by system administrators, then deployment control and coordination are achieved, but deployment time and complexity increase significantly

Engineering Contradiction:
Improvedeployment controlVSAvoiddeployment time
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The deployment system performs self-service through automated agents deployed to each host that can independently execute deployment tasks, monitor application lifecycles, and coordinate with the central deployment service without requiring manual administrator intervention for each deployment operation

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

Manual mechanical deployment operations are replaced with an automated deployment service that uses software agents and programmatic control to perform deployment tasks, substituting human administrative actions with automated computational processes

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Productivity

If software is deployed to all hosts simultaneously, then deployment speed is maximized, but application performance is negatively impacted

Engineering Contradiction:
Improvedeployment speedVSAvoidapplication performance
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The deployment process is segmented into phases targeting different subsets of hosts at different times, allowing the deployment service to control the rate and timing of deployments across the fleet to balance speed with performance impact

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The deployment service implements periodic action by deploying to different subsets of hosts in scheduled intervals, using deployment configurations to specify timing and target groups, thereby distributing the performance impact over time rather than concentrating it

Inventive Principle:
Principle #19Periodic action

3Reliability

If comprehensive deployment coordination is implemented, then application performance is maintained, but system complexity increases

Engineering Contradiction:
Improveapplication performanceVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The centralized deployment service acts as an intermediary between administrators and hosts, managing the complexity of deployment coordination centrally while presenting a simplified interface to users and automated agents

Inventive Principle:
Principle #24Intermediary (Mediator)

4Productivity

If automated deployment agents are deployed to hosts, then deployment efficiency is improved, but network bandwidth consumption increases

Engineering Contradiction:
Improvedeployment efficiencyVSAvoidnetwork bandwidth
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The deployment service implements partial action by deploying only the specific application components or updates that are changed, rather than redeploying entire applications, thereby reducing network bandwidth consumption while maintaining deployment efficiency

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9547564B1Automated deployment of applications
Publication Date: 2017.01.17 AMAZON TECH INC
  • US9547564B1 patent drawing
  • US9547564B1 patent drawing
  • US9547564B1 patent drawing

AI summary

Functionality is disclosed for automated deployment of applications. A network-based deployment service provides functionality for deploying software components to physical or virtual hosts in a service provider network and/or to hosts in other types of networks external to the service provider network. A user of the deployment service creates an application revision that includes deployable content and an application specification defining how the application is to be deployed and one or more lifecycle events. The application revision is then uploaded to a storage service, source code repository, or other location. A deployment configuration is also created that defines the location of the application revision, a deployment group, and a schedule for the deployment. A deployment agent executing on hosts in the deployment group obtains the application revision from the specified location, deploys the deployable content according to the schedule, and performs the lifecycle events.