IP Library Granted Patent US 11,604,667
Granted Patent B2
US 11,604,667 · App. 16/671,627 · Granted Mar 14, 2023

Optimized deployment based upon customer locality

Inventors: Benjamin W. Mercier (Issaquah, WA); Joseph E. Fitzgerald (Seattle, WA); Eric J. Brandwine (Haymarket, VA); Marvin M. Theimer (Bellevue, WA)
Assignee: Amazon Technologies, Inc.
G06F9/45558G06F8/60H04L67/10H04L67/34G06F2009/4557G06F2009/45595
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,604,667
App. No.
16/671,627
Granted
Mar 14, 2023
Kind
B2
Abstract

The deployment of content and computing resources for implementing a distributed software application can be optimized based upon customer location. The volume and geographic origin of incoming requests for a distributed software application are determined. Based upon the volume and geographic origin of the incoming requests, content and/or one or more instances of the distributed software application may be deployed to a geographic region generating a significant volume of requests for the distributed software application. Content and/or instances of a distributed software application might also be speculatively deployed to a geographic region in an attempt to optimize the performance, cost, or other attribute of a distributed software application.

Claims (40)

1. A computer-implemented method comprising:

determining a first geographic region generating a predetermined number of requests for a network-based application based upon a number of requests received over a network for the network-based application and a geographic location from which each of the requests originates, wherein the network-based application is one of a plurality of distributed software applications executed by at least one of a plurality of virtual machine instances at a data center in a network-based environment; and

responsive to determining the first geographic region generating a predetermined number of requests for the network-based application:

causing one or more instances of the network-based application to be deployed to the first geographic region;

causing content to be served by the network-based application to be deployed to the first geographic region together with the one or more instances of the network-based application; and

causing the one or more instances of the network-based application to handle requests for the content generated from within the first geographic region.

2. The computer-implemented method of claim 1 , wherein causing the one or more instances of the network-based application to handle requests for the content generated from within the first geographic region comprises modifying settings in one or more load balancers.

3. The computer-implemented method of claim 1 , wherein causing the one or more instances of the network-based application to handle requests for the content generated from within the first geographic region comprises modifying entries in one or more domain name servers.

4. The computer-implemented method of claim 1 , wherein causing the one or more instances of the network-based application to handle requests for the content generated from within the first geographic region comprises modifying one or more hyperlinks.

5. The computer-implemented method of claim 1 , wherein the geographic location from which each of the requests originates is determined based upon an Internet Protocol (IP) address associated with each of the incoming requests.

6. The computer-implemented method of claim 1 , wherein the deployment of the one or more instances of the network-based application is further based upon a network route of the incoming requests for the network-based application.

7. A computer system comprising:

a plurality of server computers executing a distributed software application on a plurality of virtual machine instances at a data center in a networked-based environment; and

a computer in communication with the plurality of server computers over a network, wherein the computer executes a deployment component configured to:

determine a first geographic region generating a predetermined number of requests for a network-based application based upon a number of requests received over a network for the network-based application and a geographic location from which each of the requests originates; and

responsive to determining the first geographic region generating a predetermined number of requests for the network-based application:

cause one or more instances of the network-based application to be deployed to the first geographic region;

cause content to be served by the network-based application to be deployed to the first geographic region together with the one or more instances of the network-based application; and

cause the one or more instances of the network-based application to handle requests for the content generated from within the first geographic region.

8. The system of claim 7 , wherein causing the one or more instances of the network-based application to handle requests for the content generated from within the first geographic region comprises modifying settings in one or more load balancers.

9. The system of claim 7 , wherein causing the one or more instances of the network-based application to handle requests for the content generated from within the first geographic region comprises modifying entries in one or more domain name servers.

10. The system of claim 7 , wherein causing the one or more instances of the network-based application to handle requests for the content generated from within the first geographic region comprises modifying one or more hyperlinks.

11. The system of claim 7 , wherein the geographic location from which each of the requests originates is determined based upon an Internet Protocol (IP) address associated with each of the incoming requests.

12. The system of claim 7 , wherein the deployment of the one or more instances of the network-based application is further based upon a network route of the incoming requests for the network-based application.

13. The system of claim 7 , wherein the deployment component is further configured to:

deploy one or more instances of the distributed software application to a second geographic region;

measure an impact of the deployment of the one or more instances of the distributed software application to the second geographic region;

maintain the instances of the distributed software application deployed to the second geographic region in response to measuring a positive impact; and

terminate the instances of the distributed software application deployed to the second geographic region in response to measuring a negative impact.

14. A computer-implemented method comprising:

determining a first geographic region generating a predetermined number of requests for a network-based application based upon a number of requests received over a network for the network-based application and a geographic location from which each of the requests originates, wherein the network-based application is one of a plurality of distributed software applications executed by at least one of a plurality of virtual machine instances at a data center in a network-based environment; and

responsive to determining the first geographic region generating a predetermined number of requests for the network-based application, causing one or more instances of the network-based application to be deployed to the first geographic region.

15. The computer-implemented method of claim 14 further comprising causing content to be served by the network-based application to be deployed to the first geographic region.

16. The computer-implemented method of claim 14 further comprising causing the one or more instances of the network-based application to handle requests for content, wherein the requests are generated from within the first geographic region.

17. The computer-implemented method of claim 16 , wherein causing the one or more instances of the network-based application to handle requests for content comprises modifying settings in one or more load balancers.

18. The computer-implemented method of claim 16 , wherein causing the one or more instances of the network-based application to handle requests for content comprises modifying one or more hyperlinks.

19. The computer-implemented method of claim 14 , wherein causing one or more instances of the application to be deployed comprises deploying, over a network, one or more virtual machine instances executing the network-based application to the first geographic region.

20. The computer-implemented method of claim 14 further comprising:

periodically determine an updated number of requests for the network-based application received from the first geographic region; and

terminate at least one of the instances of the network-based application deployed to the first geographic region based upon the updated number of requests received for the network-based application from the first geographic region.

Continuity (3)
Continuation 16261401 · Jan 29, 2019
Continuation 13095554 · Apr 27, 2011
Related Publication 20200065132A1 · Feb 27, 2020