Load Balancer Redirects for Zero-Downtime Code Deployment

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing system deployment methods often cause session interruptions, server errors, and browser errors during updates, as they require clients to re-enter requests or receive outdated files, and are resource-intensive and cumbersome to administer.

Innovation Solution

Implementing redirect instructions via a load balancer to ensure clients access updated resources without errors, using HTTP status code redirects to repeatedly redirect requests until an updated server is reached, avoiding self-redirect loops and ensuring continuous access to requested resources.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If deployment updates are performed on servers, then system files are updated to newer versions, but client requests may be forwarded to stale hosts causing session interruptions and browser errors

Engineering Contradiction:
Improvesystem update reliabilityVSAvoidclient errors during deployment
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The system performs preliminary deployment of updates to a subset of servers before fully activating them. The load balancer is configured in advance to detect deployment status and route traffic accordingly, preventing client requests from reaching stale hosts during the transition period.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The load balancer continuously monitors deployment status of backend servers and uses this feedback to dynamically adjust request routing. When deployment is detected, the load balancer stops forwarding requests to those servers until deployment completes, ensuring clients only access updated resources.

Inventive Principle:
Principle #23Feedback

2Reliability

If deployment artifacts are pre-seeded into a CDN, then deployment problems are offloaded to the CDN, but the system requires additional infrastructure and configuration complexity

Engineering Contradiction:
Improvedeployment continuityVSAvoidsystem architecture complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts the deployment management function from the CDN infrastructure and relocates it to the load balancer. Instead of using CDN to serve deployment artifacts, the load balancer directly controls traffic routing based on deployment status, eliminating the need for CDN involvement in deployment operations.

Inventive Principle:
Principle #2Taking out (Extraction)

3Use of energy by moving object

If deployments are performed on a percentage of servers at a time, then resource intensity is reduced, but administrative complexity increases and deployments become more cumbersome

Engineering Contradiction:
Improvedeployment resource usageVSAvoiddeployment administration ease
Core Design Contradiction:
Use of energy by moving objectVSEase of operation

Solution Approach 1:

The load balancer automatically detects deployment status on backend servers and self-adjusts traffic routing without administrator intervention. The system monitors deployment markers or status indicators and autonomously stops forwarding requests to servers undergoing deployment, eliminating manual configuration and reducing administrative burden.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10455011B2Supporting heterogeneous environments during code deployment
Publication Date: 2019.10.22 AMAZON TECH INC
  • US10455011B2 patent drawing
  • US10455011B2 patent drawing
  • US10455011B2 patent drawing

AI summary

When servers hosting a website are under some form of deployment activity (e.g., a software update being in mid-deployment), the resources requested may not be available from all servers hosting the website. In such mid-deployment edge cases, the server would return an error message in response to the request. According to an application employing redirect instructions via a load balancer, a redirect function (such as a Hypertext Transfer Protocol (HTTP) status code 302) may be configured to redirect a client request to the same location as an initial request, via a load balancer, in order to provide the client with multiple attempts of reaching an updated host (e.g., a server hosting a resource based on a recent deployment), without having to receive error codes or otherwise fail to receive the requested resource.