Providing dynamically scaling computing load balancing
First Claim
1. A non-transitory computer-readable medium whose contents are instructions that, when executed, configure a device to provide load balancing capabilities by performing a method comprising:
- for each of one or more requests received for functionality that is available from each of multiple computing nodes of a group at a first location, selecting at least one of the computing nodes of the group to handle the request;
determining that one or more defined criteria for the group are satisfied, and initiating a modification to the group of computing nodes, the modification to the group including modifying use as part of the group of one or more additional computing nodes at a second location remote from the first location; and
for each of one or more additional requests for the available functionality, selecting at least one of the computing nodes of the modified group to handle the additional request, such that at least one additional computing node at the remote second location is selected for at least one of the additional requests.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques are described for providing load balancing functionality among multiple computing nodes. In some situations, the provided load balancing functionality includes dynamically scaling a group of multiple computing nodes for which the load balancing is performed, such as to dynamically expand and/or shrink the quantity of computing nodes in the group based on predefined criteria. At least some of the computing nodes of a group may be part of one or more physical computer networks in one or more geographical locations under control of a user or other entity, and at least some of the dynamic scaling of the group may use one or more other computing nodes that are part of a remote computer network (e.g., a virtual computer network provided under the control of a network-accessible service). The defined criteria used for the dynamic scaling may be determined in various manners and based on various factors.
-
Citations
33 Claims
-
1. A non-transitory computer-readable medium whose contents are instructions that, when executed, configure a device to provide load balancing capabilities by performing a method comprising:
-
for each of one or more requests received for functionality that is available from each of multiple computing nodes of a group at a first location, selecting at least one of the computing nodes of the group to handle the request; determining that one or more defined criteria for the group are satisfied, and initiating a modification to the group of computing nodes, the modification to the group including modifying use as part of the group of one or more additional computing nodes at a second location remote from the first location; and for each of one or more additional requests for the available functionality, selecting at least one of the computing nodes of the modified group to handle the additional request, such that at least one additional computing node at the remote second location is selected for at least one of the additional requests. - View Dependent Claims (2, 3, 4, 5, 26, 27)
-
-
6. A computer-implemented method for providing load balancing capabilities, the method comprising:
under control of one or more computing devices providing load balancing capabilities for a group of multiple computing nodes providing a type of network-accessible functionality, the multiple computing nodes belonging to one or more computer networks, after receiving one or more requests from one or more computing systems for the provided type of functionality, selecting for each of the received requests one of the computing nodes of the group to respond to the request; after the receiving of the one or more requests, automatically determining that one or more defined criteria for the group are satisfied, the one or more defined criteria being based at least in part on status information for one or more of the computing nodes of the group; in response to the determining that the one or more defined criteria are satisfied, automatically initiating a modification to the group of computing nodes, the modification to the group including adding one or more additional computing nodes to the group that are part of a remote virtual computer network distinct from the one or more computer networks; and after receiving one or more additional requests from one or more computing systems for the provided type of functionality, selecting for each of the received additional requests one of the computing nodes of the modified group to respond to the additional request, such that at least one of the additional computing nodes is selected for at least one of the additional requests. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
25. A method for a computing system to provide load balancing capabilities, the method comprising:
-
receiving, by a load balancer device, configuration information for a group of multiple computing nodes that are part of a physical network of a first user, the received configuration information indicating a remote configurable virtual computer network that is an extension to the physical network, the multiple computing nodes of the group being alternatives for providing a common type of network-accessible functionality to other computing systems and each executing a copy of a software application for use in the providing of the common type of functionality, the remote virtual computer network being provided to the first user by a remote configurable network service operated by an entity distinct from the first user, the configuration information further indicating defined criteria for the group of multiple computing nodes for use in determining when to use the indicated virtual computer network as part of modifying a quantity of the multiple computing nodes of the group, the defined criteria being based at least in part on current status information for one or more of the computing nodes of the group that indicates that a load of the one or more computing nodes has exceeded a defined threshold; and under control of the load balancer device after it is configured with the received configuration information, providing load balancing capabilities for the group of multiple computing nodes by; for each of one or more requests received from one or more of the other computing systems for the provided common type of functionality, selecting one of the computing nodes of the group to respond to the request and forwarding the request to the selected one computing node; after the receiving of the one or more requests, automatically determining that the defined criteria for the group are satisfied, automatically determining one or more modifications to the group of computing nodes that will add one or more additional computing nodes to the group, and automatically initiating the determined modifications to the group of computing nodes by interacting with a programmatic interface of the configurable network service to cause the one or more additional computing nodes to be added to the indicated virtual computer network in such a manner that the additional computing nodes are available for use with the group; and for each of one or more additional requests that are received after the automatic initiating of the determined modifications to the group, the one or more additional requests being received from one or more of the other computing systems for the provided common type of functionality, selecting one of the computing nodes of the modified group to respond to the additional request and forwarding the request to the selected one computing node, such that at least one of the additional computing nodes is selected for at least one of the additional requests.
-
-
28. A computing device configured to provide load balancing capabilities, comprising:
-
one or more computer processors; and a load balancer module that is configured to, when executed by at least one of the one or more computer processors, automatically provide load balancing capabilities for functionality available from a group of computing nodes of a computer network, by receiving at least one request for the available functionality, and selecting at least one of the computing nodes of the group to handle the at least one request; automatically determining to modify a quantity of the computing nodes of the group based at least in part on one or more defined criteria for the group being satisfied, and initiating the determined modifying, the determined modifying including modifying use as part of the group of one or more computing nodes of a virtual computer network associated with the computer network; and after the initiating of the determined modifying of the quantity of the computing nodes, receiving at least one additional request for the available functionality, and selecting at least one of the computing nodes of the group to handle the at least one additional request, such that at least one of the one or more computing nodes of the virtual computer network whose use as part of the group is modified is selected for the at least one additional request. - View Dependent Claims (29, 30, 31, 32, 33)
-
Specification