IP Library › Granted Patent US 10,992,585
Granted Patent B1
US 10,992,585 · App. 16/408,290 · Granted Apr 27, 2021

Unified network traffic controllers for multi-service environments

Inventors: Timothy A. Gilman (Puyallup, WA); Houman Hassani Jalilian (Seattle, WA); Taras Alenin (Seattle, WA)
Assignee: Amazon Technologies, Inc.
H04L47/2441H04L41/0813H04L43/08H04L67/10
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 10,992,585
App. No.
16/408,290
Granted
Apr 27, 2021
Kind
B1
Abstract

One or more multi-service network traffic controllers are established for a distributed system. The controllers are connected to traffic control implementation units at a first service and a second service. Based at least in part on data collected from a traffic control implementation unit deployed at the second service, a modification to be made to a parameter of a traffic control implementation unit deployed at the first service is determined at the controllers. The modification is applied at the first service, and results in a change to a traffic flow of the second service.

Claims (57)

1. A system, comprising:

one or more computing devices;

wherein the one or more computing devices include instructions that upon execution on or across one or more processors cause the one or more computing devices to:

activate, at a first set of resources of a first network-accessible service of a distributed system, a first collection of traffic control implementation units, including a first traffic control implementation unit comprising an instance of a classifier primitive of a traffic control modeling language, and a second traffic control implementation unit comprising an instance of a flow change decider primitive of the traffic control modeling language, wherein at least some network traffic control decisions of the first network-accessible service are made according to a first set of traffic control rules, and wherein a first application programming interface implemented at the first network-accessible service is invoked as part of a multi-service dataflow;

activate, at a second set of resources of a second network-accessible of the distributed system, a second collection of traffic control implementation units, wherein at least some network traffic control decisions of the second network-accessible service are made according to a second set of traffic control rules, and wherein a second application programming interface implemented at the second network-accessible service is invoked as part of the multi-service dataflow;

collect, at one or more multi-service network traffic controllers, traffic data generated at a plurality of traffic control implementation units, including at least one traffic control implementation unit of the first collection and at least one traffic control implementation unit of the second collection;

determine, at the one or more multi-service network traffic controllers, based at least in part on data collected from a traffic control implementation unit of the second collection, a modification to be made to a parameter of a traffic control implementation unit of the first collection;

cause the modification to be applied at the traffic control implementation unit of the second collection; and

cause an indication of a change of network traffic resulting from the modification to be presented via one or more programmatic interfaces.

2. The system as recited in claim 1 , wherein the modification comprises a change to one or more of: (a) a permitted message flow rate, (b) a message prioritization rule, (c) a routing destination, or (d) a maximum queue depth for messages.

3. The system as recited in claim 1 , wherein the one or more computing devices include further instructions that upon execution on or across one or more processors further cause the one or more computing devices to:

obtain metadata pertaining to a plurality of services, including the first network-accessible service and the second network-accessible service;

classify a first subset of the plurality of services, based at least in part on analysis of the metadata, into a first group;

generate a summarized representation of the plurality of services, wherein within the summarized representation, individual services of the first group are replaced by an aggregated logical service; and

transmit the summarized representation to one or more recipients.

4. The system as recited in claim 1 , wherein the one or more computing devices include further instructions that upon execution on or across one or more processors further cause the one or more computing devices to:

provide, via a programmatic interface, an indication of a justification for the modification.

5. The system as recited in claim 1 , wherein the one or more computing devices include further instructions that upon execution on or across one or more processors further cause the one or more computing devices to:

prior to causing the modification to be applied, indicating, via a programmatic interface, that the modification is proposed.

6. A method, comprising:

performing, at one or more computing devices:

establishing connectivity between (a) one or more multi-service network traffic controllers and (b) a plurality of traffic control implementation units, including at least one traffic control implementation unit deployed at a first network-accessible service and at least one traffic control implementation unit deployed at a second network-accessible service, wherein individual ones of the traffic control implementation units comprise a respective instance of a primitive of a traffic control modeling language;

determining, at the one or more multi-service network traffic controllers, based at least in part on data collected from a traffic control implementation unit deployed at the second network-accessible service, a modification to be made to a parameter of a traffic control implementation unit deployed to the first network-accessible service; and

causing the modification to be applied at the traffic control implementation unit deployed at the first network-accessible service, wherein the modification results in a change to a traffic flow at the second network-accessible service.

7. The method as recited in claim 6 , further comprising performing, at the one or more computing devices:

prior to causing the modification to be applied, providing an indication of the modification via a programmatic interface.

8. The method as recited in claim 6 , further comprising performing, at the one or more computing devices:

providing, via a programmatic interface, an indication of a justification for the modification.

9. The method as recited in claim 6 , further comprising performing, at the one or more computing devices:

obtaining metadata pertaining to a plurality of services, including the first network-accessible service and the second network-accessible service;

classifying a first subset of the plurality of services, based at least in part on analysis of the metadata, into a first group;

preparing a summarized representation of the plurality of services, wherein within the summarized representation, individual services of the first group are replaced by an aggregated logical service; and

transmitting the summarized representation from the one or more multi-service controllers to one or more recipients.

10. The method as recited in claim 9 , wherein the analysis of the metadata comprises determining that a first service and a second service of the first subset meet a similarity criterion, wherein the determining of the modification is based at least in part on input provided by another multi-service network traffic controller assigned to the first group, and wherein the input comprises metrics aggregated from a plurality of services of the first subset.

11. The method as recited in claim 6 , wherein the modification comprises a change to one or more of: (a) a permitted message flow rate, (b) a message prioritization rule, (c) a routing destination, or (d) a maximum queue depth for messages.

12. The method as recited in claim 6 , wherein the modification is identified based on a result of a machine learning model.

13. The method as recited in claim 6 , further comprising performing, at the one or more computing devices:

initiating, by the one or more multi-service network traffic controllers, a software or firmware update of a first traffic control implementation unit; and

terminating, by the one or more multi-service network traffic controllers, operations of a second traffic control implementation unit.

14. The method as recited in claim 6 , wherein the first traffic control implementation unit is deployed within an isolated software container.

15. The method as recited in claim 6 , further comprising performing, at the one or more computing devices:

obtaining, via a programmatic interface, one or more target objectives for a type of data flow task which comprises message transfers between a plurality of services including the first network-accessible service and the second network-accessible service, wherein the one or more target objectives include one or more of: (a) a performance objective, (b) an availability objective, or (c) a concurrency objective;

wherein determining the modification based at least in part on the one or more target objectives.

16. One or more non-transitory computer-accessible storage media storing program instructions that when executed on or across one or more processors cause one or more computer systems to:

configure one or more multi-service network traffic controllers, wherein the one or more multi-service network traffic controllers are connected to a plurality of traffic control implementation units, including at least one traffic control implementation unit activated at a first network-accessible service and at least one traffic control implementation unit activated at a second network-accessible service;

determine, at the one or more multi-service network traffic controllers, based at least in part on data collected from a traffic control implementation unit deployed at the second network-accessible service, a modification to be made to a parameter of a traffic control implementation unit deployed to the first network-accessible service; and

cause the modification to be applied at the traffic control implementation unit deployed to the first network-accessible service, wherein the modification results in a change to a traffic flow at the second network-accessible service.

17. The one or more non-transitory computer-accessible storage media as recited in claim 16 , storing further program instructions that when executed on or across one or more processors further cause one or more computer systems to:

prior to causing the modification to be applied, provide an indication of the modification via a programmatic interface.

18. The one or more non-transitory computer-accessible storage media as recited in claim 16 , storing further program instructions that when executed on or across one or more processors further cause one or more computer systems to:

provide, via a programmatic interface, an indication of a justification for the modification.

19. The one or more non-transitory computer-accessible storage media as recited in claim 16 , wherein the traffic control implementation unit activated at the first network-accessible service is activated at one or more of: (a) a compute instance at a virtualization server of a virtualized computing service, (b) a non-virtualized server, (c) a router, (d) a switch, (e) a gateway, or (f) a load balancer.

20. The one or more non-transitory computer-accessible storage media as recited in claim 16 , storing further program instructions that when executed on or across one or more processors further cause one or more computer systems to:

obtain metadata pertaining to a plurality of services, including the first network-accessible service and the second network-accessible service;

classify a first subset of the plurality of services, based at least in part on analysis of the metadata, into a first group;

generate a summarized representation of the plurality of services, wherein within the summarized representation, individual services of the first group are replaced by an aggregated logical service; and

transmit the summarized representation from the one or more multi-service controllers to one or more recipients.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2019
From: GILMAN, TIMOTHY A.; JALILIAN, HOUMAN HASSANI; ALENIN, TARAS
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 049156/0430 →
Cited By (2)
US 12,244,505 US 12,513,064