IP Library Granted Patent US 12,192,071
Granted Patent B2
US 12,192,071 · App. 18/438,000 · Granted Jan 7, 2025

Microservices application network control plane

Inventors: Marco Palladino (San Francisco, CA); Augusto Marietti (San Francisco, CA)
Assignee: KONG INC.
H04L41/5025G06F11/3428H04L12/66H04L41/0661H04L41/0816H04L43/062H04L43/0817H04L43/16H04L67/133H04L67/51H04L67/56
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,192,071
App. No.
18/438,000
Granted
Jan 7, 2025
Kind
B2
Abstract

Disclosed embodiments are directed at systems, methods, and architecture for operating a control plan of a microservices application. The control plane corresponds with data plane proxies associated with each of a plurality of APIs that make up the microservices application. The communication between the data plane proxies and the control plane enables automatic detection of service groups of APIs and automatic repair of application performance in real-time in response to degrading service node conditions.

Claims (61)

1. A system comprising:

an application control plane including a machine learning model,

wherein a training set for the machine learning model includes a history of a plurality of anomalies, conditions or states associated with a detection of each of the plurality of anomalies, and one or more successful remedial actions; and

a service group of a microservice architecture application, the service group including a plurality of services that interact to perform an overall application function,

wherein each of the plurality of services includes an application programming interface (API) and a data plane proxy that is communicatively coupled to the application control plane,

wherein the application control plane is configured to:

inject API traffic into a starting service of the service group,

wherein each data plane proxy of a corresponding service of the service group is configured to:

generate, based on the API traffic, a report including one or more metrics,

wherein the machine learning model is configured to:

receive, from the data plane proxy of the corresponding service of the service group, the report including the one or more metrics,

make a determination, based on the one or more metrics and at least one system benchmark, that a network issue has begun to degrade a performance of the microservice architecture application,

identify an anomaly from the plurality of anomalies that corresponds to the network issue, and

select, based on the determination and the anomaly identified from the plurality of anomalies, a remedial action from the one or more successful remedial actions, and

wherein the application control plane is further configured to:

execute the remedial action.

2. The system of claim 1 , wherein the remedial action is selected from a first set of remedial actions, and wherein the machine learning model is further configured to:

receive, subsequent to the application control plane executing the remedial action, a second report from the data plane proxy of at least one service of the service group; and

select, based on the second report, another remedial action from a second set of remedial actions that is different from the first set of remedial actions.

3. The system of claim 2 , wherein each of the second set of remedial actions has a greater severity or magnitude than each of the first set of remedial actions.

4. The system of claim 1 , wherein the machine learning model includes a hidden Markov model and/or a convolutional neural network.

5. The system of claim 1 , wherein the at least one system benchmark is determined based on the training set.

6. The system of claim 1 , wherein the determination that the network issue will degrade the performance of the microservice architecture application is based on at least one of the one or more metrics exceeding the at least one system benchmark.

7. The system of claim 1 , wherein the determination that the network issue will degrade the performance of the microservice architecture application comprises identifying an anomalous behavior between a first service in the service group and a second service in the service group.

8. The system of claim 7 , wherein the one or more successful remedial actions includes at least one of:

rerouting additional API traffic from the first service to a third service in the service group with a functionality similar to the second service;

deprioritizing or deactivating the first service or the second service;

load balancing the service group by rate-limiting one or more services; or

rolling-back a version of the API associated with the first service or the second service to a previous stable version.

9. The system of claim 8 , wherein the load balancing the service group comprises a decentralized load balancing operation that includes at least one of: a round robin protocol, a ring hash protocol, or a maglev protocol.

10. The system of claim 1 , wherein the one or more metrics comprise at least one of a timestamp, a duration associated with processing the API traffic in the corresponding service, a throughput, an uptime or a downtime, a Layer 4 metric, a Layer 7 metric, a number of errors, an ingress traffic rate, or an egress traffic rate.

11. The system of claim 10 , wherein the application control plane is further configured to:

generate, based on the one or more metrics, at least one visualization for display on a dashboard accessible by an administrator of the application control plane.

12. A method comprising:

training, by an application control plane, a machine learning model using a training set that includes a history of a plurality of anomalies, conditions or states associated with a detection of each of the plurality of anomalies, and one or more successful remedial actions;

injecting application programming interface (API) traffic into a starting service of a service group of a microservice architecture application, the service group comprising a plurality of services that interact to perform an overall application function, wherein each of the plurality of services comprises an API and a data plane proxy that is communicatively coupled to the application control plane;

receiving, from each data plane proxy of a corresponding service of the service group, a report comprising one or more metrics;

making a determination, based on the one or more metrics and at least one system benchmark, that a network issue has begun to degrade a performance of the microservice architecture application;

identifying an anomaly from the plurality of anomalies that corresponds to the network issue;

selecting, based on the determination and the anomaly identified from the plurality of anomalies, a remedial action from the one or more successful remedial actions; and

executing the remedial action.

13. The method of claim 12 , wherein the machine learning model includes a hidden Markov model and/or a convolutional neural network.

14. The method of claim 12 , wherein the at least one system benchmark is determined based on the training set.

15. The method of claim 12 , wherein the determination that the network issue will degrade the performance of the microservice architecture application is based on at least one of the one or more metrics exceeding the at least one system benchmark.

16. The method of claim 12 , wherein the determination that the network issue will degrade the performance of the microservice architecture application comprises identifying an anomalous behavior between a first service in the service group and a second service in the service group.

17. The method of claim 16 , wherein the one or more successful remedial actions includes at least one of:

rerouting additional API traffic from the first service to a third service in the service group with a functionality similar to the second service;

deprioritizing or deactivating the first service or the second service;

load balancing the service group by rate-limiting one or more services; or

rolling-back a version of the API associated with the first service or the second service to a previous stable version.

18. An apparatus comprising:

one or more processors, implemented in an application control plane including a machine learning model, configured to:

train the machine learning model using a training set that includes a history of a plurality of anomalies, conditions or states associated with a detection of each of the plurality of anomalies, and one or more successful remedial actions;

inject application programming interface (API) traffic into a starting service of a service group of a microservice architecture application, the service group comprising a plurality of services that interact to perform an overall application function, wherein each of the plurality of services comprises an API and a data plane proxy that is communicatively coupled to the application control plane;

receive, from each data plane proxy of a corresponding service of the service group, a report comprising one or more metrics;

make a determination, based on the one or more metrics and at least one system benchmark, that a network issue has begun to degrade a performance of the microservice architecture application;

identify an anomaly from the plurality of anomalies that corresponds to the network issue;

select, based on the determination and the anomaly identified from the plurality of anomalies, a remedial action from the one or more successful remedial actions; and

execute the remedial action.

19. The apparatus of claim 18 , wherein the API traffic includes a plurality of packets, wherein each of the plurality of packets includes a known packet identifier that is updated subsequent to processing by a service of the plurality of services, and wherein the report is generated based on the known packet identifier of the plurality of packets.

20. The apparatus of claim 18 , wherein the API traffic includes a plurality of requests and a plurality of responses, and wherein the report is generated based on at least one request from the plurality of requests and an associated response from the plurality of responses.

Assignments (2)
SECURITY INTEREST Recorded Feb 28, 2025
From: KONG INC.
To: HSBC VENTURES USA INC.
Reel/Frame 070372/0963 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2024
From: PALLADINO, MARCO; MARIETTI, AUGUSTO
To: KONG INC.
Reel/Frame 066432/0275 →
Continuity (6)
Continuation 18170402 · Feb 16, 2023
Division 17806789 · Jun 14, 2022
Continuation In Part 17498631 · Oct 11, 2021
Continuation 16714662 · Dec 13, 2019
Provisional Application 62896412 · Sep 5, 2019
Related Publication 20240259279A1 · Aug 1, 2024
References Cited (97)
US 7788536B1 · Qureshi et al. · 2010 [cited by applicant]
US 8625757B1 · Karpov et al. · 2014 [cited by applicant]
US 8756617B1 · Boodman et al. · 2014 [cited by applicant]
US 8819629B2 · Sherrill · 2014 [cited by applicant]
US 9027039B2 · Michels et al. · 2015 [cited by applicant]
US 9577916B1 · Chou et al. · 2017 [cited by applicant]
US 9602468B2 · Tubi et al. · 2017 [cited by applicant]
US 9716617B1 · Ahuja et al. · 2017 [cited by applicant]
US 9936005B1 · Palladino et al. · 2018 [cited by applicant]
US 9959363B2 · Kaplinger et al. · 2018 [cited by applicant]
US 9967285B1 · Rossman et al. · 2018 [cited by applicant]
US 10379838B1 · Chud · 2019 [cited by applicant]
US 10621005B2 · Wong et al. · 2020 [cited by applicant]
US 10623390B1 · Rosenhouse · 2020 [cited by applicant]
US 10827020B1 · Cao et al. · 2020 [cited by applicant]
US 20040070604A1 · Bhat et al. · 2004 [cited by applicant]
US 20040250176A1 · Brown et al. · 2004 [cited by applicant]
US 20050027797A1 · San Andres et al. · 2005 [cited by applicant]
US 20050262475A1 · Halpern · 2005 [cited by applicant]
US 20060195840A1 · Sundarrajan et al. · 2006 [cited by applicant]
US 20070002731A1 · Misra · 2007 [cited by applicant]
US 20070280206A1 · Messer et al. · 2007 [cited by applicant]
US 20100042712A1 · Lindem et al. · 2010 [cited by applicant]
US 20100241846A1 · Sundarrajan et al. · 2010 [cited by applicant]
US 20110087783A1 · Annapureddy et al. · 2011 [cited by applicant]
US 20120124647A1 · Simula et al. · 2012 [cited by applicant]
US 20130132582A1 · Kim et al. · 2013 [cited by applicant]
US 20130132584A1 · Palladino et al. · 2013 [cited by applicant]
US 20130227291A1 · Ahmed et al. · 2013 [cited by applicant]
US 20130311643A1 · Kulkarni · 2013 [cited by applicant]
US 20140040863A1 · Hale et al. · 2014 [cited by applicant]
US 20140068047A1 · Williams et al. · 2014 [cited by applicant]
US 20140281739A1 · Tuffs et al. · 2014 [cited by applicant]
US 20140282053A1 · Hauschild et al. · 2014 [cited by applicant]
US 20140289699A1 · Paterson et al. · 2014 [cited by applicant]
US 20140366080A1 · Gupta et al. · 2014 [cited by applicant]
US 20140379938A1 · Bosch et al. · 2014 [cited by applicant]
US 20150301883A1 · Talla et al. · 2015 [cited by applicant]
US 20150301886A1 · Watanabe · 2015 [cited by applicant]
US 20150312364A1 · Bayliss et al. · 2015 [cited by applicant]
US 20150319154A1 · Balakrishnan et al. · 2015 [cited by applicant]
US 20150350092A1 · Kwon et al. · 2015 [cited by applicant]
US 20150350341A1 · Daute · 2015 [cited by applicant]
US 20160026461A1 · Bannister et al. · 2016 [cited by applicant]
US 20160048408A1 · Madhu et al. · 2016 [cited by applicant]
US 20160080280A1 · Ramachandran · 2016 [cited by examiner]
US 20160173578A1 · Sharma et al. · 2016 [cited by applicant]
US 20160269425A1 · Shieh · 2016 [cited by examiner]
US 20160269926A1 · Sundaram · 2016 [cited by applicant]
US 20170012838A1 · Kashtan et al. · 2017 [cited by applicant]
US 20170012941A1 · Subbarayan · 2017 [cited by examiner]
US 20170060577A1 · Schreiber et al. · 2017 [cited by applicant]
US 20170063989A1 · Langouev et al. · 2017 [cited by applicant]
US 20170124210A1 · Suter et al. · 2017 [cited by applicant]
US 20170019468A1 · Charlton, III et al. · 2017 [cited by applicant]
US 20170187835A1 · Lim et al. · 2017 [cited by applicant]
US 20170206707A1 · Guay et al. · 2017 [cited by applicant]
US 20170221119A1 · Pellow et al. · 2017 [cited by applicant]
US 20170242784A1 · Heorhiadi et al. · 2017 [cited by applicant]
US 20170257870A1 · Farmanbar et al. · 2017 [cited by applicant]
US 20170279696A1 · Vasseur · 2017 [cited by examiner]
US 20180054772A1 · Tan · 2018 [cited by applicant]
US 20180060159A1 · Justin et al. · 2018 [cited by applicant]
US 20180069806A1 · Kumar · 2018 [cited by applicant]
US 20180091376A1 · Ramakrishna · 2018 [cited by examiner]
US 20180152310A1 · Ansari et al. · 2018 [cited by applicant]
US 20180165386A1 · Soundiramourthy et al. · 2018 [cited by applicant]
US 20180239658A1 · Whitner et al. · 2018 [cited by applicant]
US 20180270079A1 · Chamarajnager et al. · 2018 [cited by applicant]
US 20180337891A1 · Subbarayan et al. · 2018 [cited by applicant]
US 20180349121A1 · Bagarolo et al. · 2018 [cited by applicant]
US 20180357114A1 · O'Kennedy et al. · 2018 [cited by applicant]
US 20190034199A1 · Pollock · 2019 [cited by applicant]
US 20190036795A1 · Ouyang · 2019 [cited by examiner]
US 20190068438A1 · Kumar et al. · 2019 [cited by applicant]
US 20190116124A1 · Pignataro et al. · 2019 [cited by applicant]
US 20190197448A1 · Nelaturi et al. · 2019 [cited by applicant]
US 20190273746A1 · Coffing · 2019 [cited by applicant]
US 20200012785A1 · Dykes · 2020 [cited by applicant]
US 20200050494A1 · Bartfai-Walcott et al. · 2020 [cited by applicant]
US 20200112487A1 · Inamdar et al. · 2020 [cited by applicant]
US 20200162380A1 · Pilkington et al. · 2020 [cited by applicant]
US 20200167262A1 · Frontiero et al. · 2020 [cited by applicant]
US 20200329114A1 · Bahl et al. · 2020 [cited by applicant]
US 20200358802A1 · Viswambharan et al. · 2020 [cited by applicant]
US 20200366569A1 · White · 2020 [cited by applicant]
US 20210019194A1 · Bahl · 2021 [cited by examiner]
US 20210058484A1 · Pilkington et al. · 2021 [cited by applicant]
US 20210184951A1 · Bonas · 2021 [cited by applicant]
US 20210352139A1 · Madisetti et al. · 2021 [cited by applicant]
US 20210365357A1 · Gamliel et al. · 2021 [cited by applicant]
US 20220109741A1 · Chen et al. · 2022 [cited by applicant]
WO 2008094540A1 · 2008 [cited by applicant]
WO 2019203785A1 · 2019 [cited by applicant]
Gamez, D., et al., “Toward SLA-Driven API Gateways,” Sep. 2015 (9 pages). [cited by applicant]
Kong-Open Source API management and Microservice Management, <https:/web.archive.org/web/20160221221135/https://getkong.org/> Feb. 12, 2016 (4 pages). [cited by applicant]
Mashape, <https://web.archive.org/web/20160721224232/https:/www.mashape.com/> Jul. 21, 2016 (4 pages). [cited by applicant]