Concurrent Application Version Deployment with Automatic Rollback

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Deploying new versions of network-based applications often results in downtime for clients due to the need to terminate the old version and allocate resources for the new version, leading to temporary loss of accessibility.

Innovation Solution

Implementing a deployment management application that allows the new version to execute concurrently with the old version, redirecting network traffic to the new version once it is stable, and enabling rollback to the old version in case of errors, thus minimizing downtime and resource usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the old version is terminated and resources are allocated for the new version, then the new version can be deployed, but client accessibility experiences downtime

Engineering Contradiction:
Improveclient accessibilityVSAvoiddowntime
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by allocating resources and starting the new version in advance before the old version is fully terminated. The load balancer is pre-configured with both old and new version endpoints, allowing the new version to be ready for traffic redirection before the old version completely shuts down, thereby minimizing client accessibility downtime.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The load balancer acts as an intermediary between clients and application versions. It manages traffic distribution by gradually shifting weight from the old version to the new version, allowing seamless transition without complete service interruption. This intermediary mechanism enables health-check-based routing that maintains client accessibility throughout the deployment process.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If the new version runs concurrent to the old version, then client accessibility is maintained, but system resource usage increases

Engineering Contradiction:
Improveclient accessibilityVSAvoidsystem resource usage
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The system applies partial action by running only a subset of the new version's instances concurrently with the old version during the transition period. The load balancer distributes traffic proportionally, sending only the necessary portion of requests to the new version while keeping the old version fully operational. This partial execution approach maintains client accessibility while avoiding the need to fully provision and run all new version resources simultaneously, thus optimizing system resource usage.

Inventive Principle:
Principle #16Partial or excessive action

3Loss of time

If network traffic is redirected to the new version, then clients access the new version with no downtime, but errors in the new version can cause accessibility problems

Engineering Contradiction:
ImprovedowntimeVSAvoidcustomer accessibility
Core Design Contradiction:
Loss of timeVSReliability

Solution Approach 1:

The system implements feedback mechanisms through health checks that continuously monitor the new version's performance and availability. The load balancer receives feedback about the new version's health status and dynamically adjusts traffic distribution accordingly. When the new version experiences errors or degradation, the health check feedback triggers automatic rollback by redirecting traffic back to the old version, ensuring continuous client accessibility without manual intervention.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system prepares cushioning measures in advance by maintaining the old version running alongside the new version during the transition period. This creates a safety buffer where the old version serves as a backup ready to immediately absorb traffic if the new version fails. The gradual traffic shift approach also provides cushioning by not fully committing to the new version until it proves stable, protecting against potential accessibility problems.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

Data Source

PatentUS9575745B1Immediately launching applications
Publication Date: 2017.02.21 AMAZON TECH INC
  • US9575745B1 patent drawing
  • US9575745B1 patent drawing
  • US9575745B1 patent drawing

AI summary

Disclosed are various embodiments for a deployment management system. A second version of a deployable application is executed concurrently with a first version. Network traffic sent to the first version of the application is redirected to the second version. In the event of an error, network traffic is directed back to the first version of the application. After a period of concurrent execution, the first version of the application is terminated.