# US 10,455,011 B2 · Supporting heterogeneous environments during code deployment

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,455,011 B2
- Document ID: US10455011B2
- Status: Granted
- Kind: B2
- Application number: 15/881,507
- Filed: 2018-01-26
- Published: 2018-05-31
- Granted: 2019-10-22
- Earliest claimed: 2015-06-16
- Assignees: Amazon Technologies, Inc.
- Applicants: Amazon Technologies, Inc.
- Inventors: Cory Barrett Kendall
- Web page: https://patentgrep.com/patent/US10455011B2

## CPC

- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/1031: Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
- H04L 47/748: {Negotiation of resources, e.g. modification of a request}
- H04L 47/822: {Collecting or measuring resource availability data}
- H04L 67/1001: for accessing one among a plurality of replicated servers
- H04L 67/563: Data redirection of data network streams
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

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.

## Claims

### Claim 1

A computer-implemented method, comprising:
determining, by a server and based at least in part on an update status of a resource, that the resource is at least temporarily inaccessible at a location identified in a first request for the resource, wherein the first request is from a requestor; and
responding, by the server and based at least in part on a redirection parameter associated with the resource, to the first request with a redirect instruction to initiate a second request identifying the location, wherein the redirection parameter identifies at least the update status of the resource.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein the redirection parameter indicates a pending deployment.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein the location corresponds to a plurality of redundant web servers.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, further comprising updating the redirection parameter to cause the redirect instruction to not be provided in a response to a third request for the resource.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein the first request is a Hypertext Transfer Protocol request.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein responding to the first request comprises transmitting the redirect instruction to a load balancer.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein the location is specified by a path in a resource locator.

### Claim 8

A system, comprising:
memory to store instructions executable by one or more processors to cause the system to at least:
receive a request identifying a location of a resource; and
if the resource is determined, by a server and based at least in part on an update status of the resource, to be at least temporarily inaccessible and if a redirection parameter has a first state, respond by the server to the request with a redirect instruction to initiate a second request identifying the location, wherein the first state indicates the update status of the resource, and wherein the request is from a requestor.

### Claim 9 (depends on 8)

The system of claim 8, wherein the system comprises a load balancer.

### Claim 10 (depends on 9)

The system of claim 9, wherein the system comprises multiple web servers registered with the load balancer.

### Claim 11 (depends on 10)

The system of claim 10, wherein the request is received by a first web server and the load balancer utilizes a load balancing algorithm that results in a nonzero probability that a second web server receives the second request.

### Claim 12 (depends on 8)

The system of claim 8, wherein the instructions are further executable to cause the system to change the redirection parameter to a second state that causes the redirect instruction to not be sent if the resource is inaccessible.

### Claim 13 (depends on 8)

The system of claim 8, wherein the system comprises multiple redundant servers.

### Claim 14 (depends on 8)

The system of claim 8, wherein the instructions are executable to cause the system to provide the resource if the resource is determined to be accessible.

### Claim 15

A non-transitory computer-readable storage medium having stored thereon instructions that, if executed by one or more processors, cause a computer system to at least:
determine, based at least in part on an update status of a resource, that the resource is at least temporarily inaccessible at a location identified in a first request for the resource, wherein the first request is from a requestor; and
generate a response to the request based at least in part on a redirection parameter associated with the resource to include a redirect instruction to initiate a second request identifying the location, wherein the redirection parameter indicates the update status of the resource.

### Claim 16 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein the instructions, if executed by the one or more processors, cause the computer system to generate the response to lack the redirect instruction if the resource is determined to be accessible.

### Claim 17 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein the redirection parameter is selectively settable to determine whether responses include the redirect instruction.

### Claim 18 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein the redirect instruction comprises a Hypertext Transfer Protocol status code that specifies the location.

### Claim 19 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein, if the redirection parameter has a particular state, the instructions, if executed by the one or more processors, cause the computer system to transmit an error message instead of the redirect instruction.

### Claim 20 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein the response further comprises information that indicates to a load balancer to direct the second request to another computer system.
