Request routing based on server software versions
First Claim
1. A system, comprising:
- one or more processors with memory implementing a request router configured to, automatically and without user intervention;
discover, based on messages received from a plurality of backend nodes, different versions of a resource that are deployed on individual ones of the plurality of backend nodes;
update a version map based at least in part on the discovered versions of the resource;
receive and route a plurality of requests to the plurality of backend nodes according to a routing policy and the version map, wherein the routing policy specifies relative proportions of requests to be routed to the different versions of the resource;
monitor metrics resulting from the routing of the plurality of requests to the different versions of the resource;
analyze the metrics to determine an update to the routing policy to change the relative proportions of requests to be routed to the different versions; and
apply the determined update to the routing policy.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods are disclosed to implement a request routing layer of a service provider system, where the request routers are aware of different versions of a service implemented by the servers of the system. In embodiments, the request routers may discover the different versions of the service via periodic health messages or request responses from the servers. Requests are routed to the servers according to a routing policy that specifies the relative proportions of requests that are to be routed to each version. Version metrics generated from the requests may be captured and provided to a version change manager, which may update the routing policy based on the metrics, either increasing or decreasing the proportion of requests for the different versions. In embodiments, the request router may implement additional rules that control their routing behavior in response to detected error conditions.
-
Citations
20 Claims
-
1. A system, comprising:
one or more processors with memory implementing a request router configured to, automatically and without user intervention; discover, based on messages received from a plurality of backend nodes, different versions of a resource that are deployed on individual ones of the plurality of backend nodes; update a version map based at least in part on the discovered versions of the resource; receive and route a plurality of requests to the plurality of backend nodes according to a routing policy and the version map, wherein the routing policy specifies relative proportions of requests to be routed to the different versions of the resource; monitor metrics resulting from the routing of the plurality of requests to the different versions of the resource; analyze the metrics to determine an update to the routing policy to change the relative proportions of requests to be routed to the different versions; and apply the determined update to the routing policy. - View Dependent Claims (2, 3, 4, 5)
-
6. A method, comprising:
performing, by a request router implemented by one or more processors and associated memory automatically and without user intervention; discovering, based on messages received from a plurality of backend nodes, different versions of a resource that are deployed on individual ones of the plurality of backend nodes; updating a version map based at least in part on the discovered versions of the resource; receiving and routing a plurality of requests to the plurality of backend nodes according to a routing policy and the version map, wherein the routing policy specifies relative proportions of requests to be routed to the different versions of the resource; monitoring metrics resulting from the routing of the plurality of requests to the different versions of the resource; analyzing the metrics to determine an update to the routing policy to change the relative proportions of requests to be routed to the different versions; and applying the determined update to the routing policy. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15)
-
16. A non-transitory computer-accessible storage medium storing program instructions that when executed on one or more processors of a request router, cause the request router to, automatically and without user intervention:
-
discover, based on messages received from a plurality of backend nodes, different versions of a resource that are deployed on individual ones of the plurality of backend nodes; update a version map based at least in part on the discovered versions of the resource; receive and routing a plurality of requests to the plurality of backend nodes according to a routing policy and the version map, wherein the routing policy specifies relative proportions of requests to be routed to the different versions of the resource; monitor metrics resulting from the routing of the plurality of requests to the different versions of the resource; analyze the metrics to determine an update to the routing policy to change the relative proportions of requests to be routed to the different versions; and apply the determined update to the routing policy. - View Dependent Claims (17, 18, 19, 20)
-
Specification