Microservices application network control plane
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.
1. A method comprising:
monitoring, by an application control plane, a plurality of packets being routed through a plurality of services of a microservice architecture application, each of the plurality of services being an application program interface (API) performing a piecemeal function of an overall application function, each service including a data plane proxy, wherein the data plane proxy reports traffic of a corresponding service to the application control plane;
measuring, based on the monitoring, a latency associated with the plurality of packets between a first service and a second service; and
in response to the latency exceeding a threshold,
identifying a bottleneck between the first service and the second service, and
diverting the plurality of packets to a third service with a functionality similar to the second service.
2. The method of claim 1 , wherein the threshold is based on an application performance benchmark for the plurality of services in the microservice architecture application.
3. The method of claim 1 , wherein the plurality of packets comprises test packets.
4. The method of claim 1 , wherein the plurality of packets comprises live traffic associated with an end user of the microservice architecture application.
5. The method of claim 1 , further comprising:
receiving a plurality of reports from each of the plurality of services, each of the plurality of reports comprising a timestamp associated with the corresponding service.
6. The method of claim 5 , wherein the measuring the latency is based on the corresponding timestamp.
7. The method of claim 5 , further comprising:
receiving an indication of a start of a service group, the start of the service group corresponding to a starting service of the plurality of services;
generating the plurality of packets;
initiating a routing of the plurality of packets at the starting service and through the plurality of services; and
generating, subsequent to the initiating and based on the plurality of reports, a dependency graph.
8. The method of claim 7 , wherein the dependency graph is reported, using a graphical user interface (GUI), to an administrator of the application control plane.
9. The method of claim 7 , wherein each of the plurality of packets comprises a known packet identification.
10. A system comprising:
an application control plane; and
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 application programming interface (API) and a data plane proxy that is communicatively coupled to the application control plane, and
wherein the application control plane is configured to:
monitor a plurality of packets being routed through the plurality of services of the microservice architecture application,
wherein the data plane proxy is configured to:
report traffic of a corresponding service to the application control plane, and
wherein the application control plane is further configured to:
measure, based on the monitoring, a latency associated with the plurality of packets between a first service and a second service; and
in response to the latency exceeding a threshold,
identify a bottleneck between the first service and the second service, and
divert the plurality of packets to a third service with a functionality similar to the second service.
11. The system of claim 10 , wherein the threshold is based on an application performance benchmark for the plurality of services in the microservice architecture application.
12. The system of claim 10 , wherein the plurality of packets comprises test packets or live traffic associated with an end user of the microservice architecture application.
13. The system of claim 10 , wherein the application control plane is further configured to:
receive a plurality of reports from each of the plurality of services, each of the plurality of reports comprising a timestamp associated with the corresponding service.
14. The system of claim 13 , wherein the measuring the latency is based on the corresponding timestamp.
15. The system of claim 13 , wherein the application control plane is further configured to:
receive an indication of a start of a service group, the start of the service group corresponding to a starting service of the plurality of services;
generate the plurality of packets;
initiate a routing of the plurality of packets at the starting service and through the plurality of services; and
generate, subsequent to the initiating and based on the plurality of reports, a dependency graph.
16. An apparatus comprising:
a processor; and
a memory, coupled to the processor, comprising instructions, the instructions when executed causing the processor to:
monitor, by an application control plane, a plurality of packets being routed through a plurality of services of a microservice architecture application, each of the plurality of services being an application program interface (API) performing a piecemeal function of an overall application function, each service including a data plane proxy, wherein the data plane proxy reports traffic of a corresponding service to the application control plane;
measure, based on the monitoring, a latency associated with the plurality of packets between a first service and a second service; and
in response to the latency exceeding a threshold,
identify a bottleneck between the first service and the second service, and
divert the plurality of packets to a third service with a functionality similar to the second service.
17. The apparatus of claim 16 , wherein the plurality of packets comprises test packets or live traffic associated with an end user of the microservice architecture application.
18. The apparatus of claim 16 , wherein the instructions, when executed, further cause the processor to:
receive a plurality of reports from each of the plurality of services, each of the plurality of reports comprising a timestamp associated with the corresponding service;
receive an indication of a start of a service group, the start of the service group corresponding to a starting service of the plurality of services;
generate the plurality of packets;
initiate a routing of the plurality of packets at the starting service and through the plurality of services; and
generate, subsequent to the initiating and based on the plurality of reports, a dependency graph.
19. The apparatus of claim 18 , wherein the dependency graph is reported, using a graphical user interface (GUI), to an administrator of the application control plane.
20. The apparatus of claim 18 , wherein each of the plurality of packets comprises a known packet identification.