IP Library › Granted Patent US 12,513,064
Granted Patent B2
US 12,513,064 · App. 17/235,680 · Granted Dec 30, 2025

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.
H04L43/062H04L41/0813H04L41/0895H04L41/40H04L43/08H04L43/20H04L45/38H04L45/70H04L47/2441H04L67/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 12,513,064
App. No.
17/235,680
Granted
Dec 30, 2025
Kind
B2
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 (43)

1 . A computer-implemented method, comprising:

executing a first service, of a plurality of distinct services provided by a provider network of a cloud computing environment to a plurality of clients, the first service implemented using one or more servers of the cloud computing environment, wherein the first service is part of a distributed system that sends or receives traffic to or from a second service, of the distributed system, implemented external to the cloud computing environment and that performs at least one type of task distinct from a type of task performed by the first service, wherein the first service includes network endpoints implemented by a plurality of virtual machines or software containers hosted in the cloud computing environment;

obtaining, at a network traffic controller of the cloud computing environment, (a) a first set of traffic data of the first service of the distributed system, and (b) a second set of traffic data of the second service of the distributed system;

determining, at the network traffic controller, based at least in part on analysis of at least one set of traffic data of the first and second sets of traffic data, a recommended configuration change for traffic flowing between the first service and the second service; and

causing, by the network traffic controller, the recommended configuration change to be implemented.

2 . The computer-implemented method as recited in claim 1 , wherein the analysis of at least one set of traffic data comprises executing a machine learning model.

3 . The computer-implemented method as recited in claim 1 , wherein the recommended configuration change comprises modifying a percentage of traffic directed from a traffic source to a traffic destination at a particular service of a group of services comprising the first service and the second service.

4 . The computer-implemented method as recited in claim 1 , wherein the recommended configuration change comprises causing at least some messages directed to a traffic destination to be dropped, wherein the traffic destination implements at least a portion of a particular service of a group of services comprising the first service and the second service.

5 . The computer-implemented method as recited in claim 1 , further comprising:

obtaining, via one or more programmatic interfaces, one or more objectives for a group of services including at least one service of the first service and the second service, wherein the one or more objectives include one or more of: (a) a performance objective, (b) an availability objective, or (c) a concurrency objective, and wherein said determining the recommended configuration change is based at least in part on the one or more objectives.

6 . The computer-implemented method as recited in claim 1 , further comprising:

providing, via one or more programmatic interfaces, an indication of a justification for the recommended configuration change.

7 . The computer-implemented method as recited in claim 1 , further comprising:

providing, via one or more programmatic interfaces, a visual representation of the traffic flowing between the first service and the second service.

8 . A system, comprising:

one or more computing devices;

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

execute a first service, of a plurality of distinct services provided by a provider network of a cloud computing environment to a plurality of clients, the first service implemented using one or more servers of the cloud computing environment, wherein the first service is part of a distributed system that sends or receives traffic to or from a second service of the distributed system implemented external to the cloud computing environment and that performs at least one type of task distinct from a type of task performed by the first service, wherein the first service includes network endpoints implemented by a plurality of virtual machines or software containers hosted in the cloud computing environment;

obtain, at a network traffic controller of the cloud computing environment, (a) a first set of traffic data of the first service of the distributed system, and (b) a second set of traffic data of the second service of the distributed system;

identify, at the network traffic controller, based at least in part on analysis of at least one set of traffic data of the first and second sets of traffic data, a recommended configuration change for traffic flowing between the first service and the second service; and

cause, by the network traffic controller, the recommended configuration change to be implemented.

9 . The system as recited in claim 8 , wherein the analysis of at least one set of traffic data comprises execution of a rules engine.

10 . The system as recited in claim 8 , wherein the recommended configuration change comprises modification of a percentage of traffic directed from a traffic source to a traffic destination at a particular service of a group of services comprising the first service and the second service.

11 . The system as recited in claim 8 , wherein the recommended configuration change comprises causing at least some messages directed from a traffic source to be dropped, wherein the traffic source implements at least a portion of a particular service of a group of services comprising the first service and the second service.

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

obtain, via one or more programmatic interfaces, one or more objectives for a plurality of services including the first service and the second service, wherein the one or more objectives include one or more of: (a) a performance objective, (b) an availability objective, or (c) a concurrency objective, and wherein the recommended configuration change is identified based at least in part on the one or more objectives.

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

provide, via one or more programmatic interfaces, an indication of a reason for the recommended configuration change.

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

provide, via one or more programmatic interfaces, an indication of a change in traffic flowing between the first service and the second service subsequent to implementation of the recommended configuration change.

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

execute a first service, of a plurality of distinct services provided by a provider network of a cloud computing environment to a plurality of clients, the first service implemented using one or more servers of the cloud computing environment, wherein the first service is part of a distributed system that sends or receives traffic to or from a second service, of the distributed system, implemented external to the cloud computing environment and that performs at least one type of task distinct from a type of task performed by the first service, wherein the first service includes network endpoints implemented by a plurality of virtual machines or software containers hosted in the cloud computing environment;

obtain, at a network traffic controller of the cloud computing environment, (a) a first set of traffic data of the first service of the distributed system, and (b) a second set of traffic data of the second service of the distributed system;

identify, at the network traffic controller, based at least in part on analysis of at least one set of traffic data of the first and second sets of traffic data, a recommended configuration change for traffic flowing between the first service and the second service; and

cause, by the network traffic controller, the recommended configuration change to be implemented.

16 . The one or more non-transitory computer-accessible storage media as recited in claim 15 , wherein the analysis of at least one set of traffic data comprises execution of a machine learning model.

17 . The one or more non-transitory computer-accessible storage media as recited in claim 15 , wherein the recommended configuration change 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.

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

obtain, via one or more programmatic interfaces, one or more objectives for a group of services including at least one service of the first service and the second service, wherein the one or more objectives include one or more of: (a) a performance objective, (b) an availability objective, or (c) a concurrency objective, and wherein the recommended configuration change is identified based at least in part on the one or more objectives.

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

indicate, via one or more programmatic interfaces, in advance of implementation of the recommended configuration change, that the recommended configuration change has been identified.

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

indicate, via one or more programmatic interfaces, one or more automated commands used to implement the recommended configuration change.

Continuity (2)
Continuation 16408290 · May 9, 2019
Related Publication 20210243132A1 · Aug 5, 2021
References Cited (22)
US 7299294B1 · Bruck et al. · 2007 [cited by applicant]
US 7433304B1 · Galloway et al. · 2008 [cited by applicant]
US 7742406B1 · Muppala · 2010 [cited by applicant]
US 8089875B2 · Fraccalvieri et al. · 2012 [cited by applicant]
US 8527647B2 · Gopalakrishnan · 2013 [cited by applicant]
US 8868725B2 · Samba · 2014 [cited by applicant]
US 9479447B2 · Samuels et al. · 2016 [cited by applicant]
US 10992585B1 · Gilman · 2021 [cited by examiner]
US 11032146B2 · Kumarasamy · 2021 [cited by examiner]
US 20030182580A1 · Lee · 2003 [cited by applicant]
US 20110064093A1 · Mattson · 2011 [cited by examiner]
US 20120033666A1 · Holness · 2012 [cited by examiner]
US 20160026922A1 · Vasseur · 2016 [cited by examiner]
US 20170214588A1 · Murthy · 2017 [cited by examiner]
US 20180152474A1 · Winquist · 2018 [cited by examiner]
US 20190052532A1 · Chen · 2019 [cited by examiner]
US 20190312813A1 · Ellis · 2019 [cited by examiner]
US 20190319926A1 · Cummins · 2019 [cited by examiner]
US 20190342181A1 · Li · 2019 [cited by examiner]
US 20200236621A1 · Yamada · 2020 [cited by examiner]
Amazon CloudWatch: User Guide, 2019 Amazon Web Services, Inc. [cited by applicant]
U.S. Appl. No. 16/408,288, filed May 9, 2019, Timothy A. Gilman. [cited by applicant]