IP Library Granted Patent US 11,671,506
Granted Patent B2
US 11,671,506 · App. 16/752,798 · Granted Jun 6, 2023

Microservice management system for recommending modifications to optimize operation of microservice-based systems

Inventors: Hung The Dinh (Austin, TX); Shubham Gupta (Jaipur, IN)
Assignee: Dell Products L.P.
H04L67/51G06F8/425G06F8/75H04L43/0817H04L67/10H04L67/63
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 11,671,506
App. No.
16/752,798
Granted
Jun 6, 2023
Kind
B2
Abstract

A method, system and computer-usable medium are disclosed for executing a comparative analysis of microservice profiles and recommending modifications to a microservice. In at least one embodiment, a plurality of microservice analysis daemons and a plurality of microservices are deployed to nodes of a network. Run-time execution characteristic of the plurality of microservices are monitored and gathered by the analysis daemons for microservices executed at the node at which the microservice analysis daemon is deployed. Microservice profiles are generated using the run-time execution characteristics data and data retrieved from a service registry. Recommendations regarding modification of one or more microservices are made based on the results of a microservice profile comparative analysis.

Claims (78)

1. A computer-implemented method for managing microservices, comprising:

executing a plurality of microservice analysis daemons on nodes of a network;

deploying a plurality of microservices to the nodes of the network;

registering the plurality of microservices executed at the nodes of the network with a service registry;

gathering execution characteristic data for the plurality of microservices using the microservice analysis daemons, wherein the microservice analysis daemons gather execution characteristic data for microservices executed at the node at which the microservice analysis daemon is deployed;

generating microservice profiles for the plurality of microservices using execution characteristics data obtained from the microservice analysis daemons and data retrieved from the service registry and using microservice information that includes tokens identified from lexical analysis of a microservice codebase, wherein the microservice codebase includes code for the plurality of microservices;

executing a comparison operation using the microservice profiles;

determining as a result of the comparison operation that:

a microservice receives the same microservice payload type as another microservice, and

the microservice outputs the same microservice payload type as the other microservice;

making a recommendation to eliminate the microservice and use the other microservice based on the determined result of the comparison operation; and

making a further recommendation to consolidate functionality of the microservice with the other microservice when the microservice consistently communicates with the same microservices as the other microservice and has at least some overlapping functionality.

2. The computer-implemented method of claim 1 , wherein

the microservice information is retrieved from a datastore, and wherein the microservice information includes information for the microservices provided by microservice owners.

3. The computer-implemented method of claim 1 , wherein

the microservice profiles include records respectively associated with the microservice profiles, wherein the record for a profile includes tokenized information including one or more of:

keywords associated with code characteristics of the microservice;

variables and/or function names used by the microservice;

literals used by the microservice; and

text comments associated with the microservice.

4. The computer-implemented method of claim 1 , further comprising:

making a further recommendation to update the microservice to maintain a consistent payload format with other similar microservices.

5. The computer-implemented method of claim 1 , wherein the result of the comparison operation is received from a recurrent neural network.

6. The computer-implemented method of claim 5 , wherein the recurrent neural network comprises a long short-term memory recurrent neural network.

7. A system comprising:

a processor;

a data bus coupled to the processor; and

a non-transitory, computer-readable storage medium embodying computer program code, the non-transitory, computer-readable storage medium being coupled to the data bus, the computer program code interacting with a plurality of computer operations and comprising instructions executable by the processor and configured for:

executing a plurality of microservice analysis daemons on nodes of a network;

deploying a plurality of microservices to the nodes of the network;

registering the plurality of microservices executed at the nodes of the network with a service registry;

gathering execution characteristic data for the plurality of microservices using the microservice analysis daemons, wherein the microservice analysis daemons gather execution characteristic data for microservices executed at the node at which the microservice analysis daemon is deployed;

generating microservice profiles for the plurality of microservices using execution characteristics data obtained from the microservice analysis daemons and data retrieved from the service registry and using microservice information that includes tokens identified from lexical analysis of a microservice codebase, wherein the microservice codebase includes code for the plurality of microservices;

executing a comparison operation using the microservice profiles;

determining as a result of the comparison operation that:

a microservice receives the same payload type as another microservice, and

the microservice outputs the same payload type as the other microservice;

making a recommendation to eliminate a microservice and use another microservice based on the determined result of the comparison operation; and

making a further recommendation to consolidate functionality of the microservice with the other microservice when the microservice consistently communicates with the same microservices as the other microservice and has at least some overlapping functionality.

8. The system of claim 7 , wherein

the microservice information is retrieved from a datastore, and wherein the microservice information includes information for the microservices provided by microservice owners.

9. The system of claim 7 , wherein

the microservice profiles include records respectively associated with the microservice profiles, wherein the record for a profile includes tokenized information including one or more of:

keywords associated with code characteristics of the microservice;

variables and/or function names used by the microservice;

literals used by the microservice; and

text comments associated with the microservice.

10. The system of claim 7 , wherein the instructions are further configured for:

making a further recommendation to update the microservice to maintain a consistent payload format with other similar microservices.

11. The system of claim 7 , wherein the instructions are further configured for:

modifying the microservice based on analyzing the recommendation, and

providing the modified microservice to a continuous integration, continuous deployment (CICD) pipeline.

12. The system of claim 7 , wherein the lexical analysis comprises identifying the tokens using machine learning to determine potential token names and token occurrences in the code for the plurality of microservices.

13. A non-transitory, computer-readable storage medium embodying computer program code, the computer program code comprising computer executable instructions configured for:

executing a plurality of microservice analysis daemons on nodes of a network;

deploying a plurality of microservices to the nodes of the network;

registering the plurality of microservices executed at the nodes of the network with a service registry;

gathering execution characteristic data for the plurality of microservices using the microservice analysis daemons, wherein the microservice analysis daemons gather execution characteristic data for microservices executed at the node at which the microservice analysis daemon is deployed;

generating microservice profiles for the plurality of microservices using execution characteristics data obtained from the microservice analysis daemons and data retrieved from the service registry and using microservice information that includes tokens identified from lexical analysis of a microservice codebase, wherein the microservice codebase includes code for the plurality of microservices;

executing a comparison operation using the microservice profiles;

determining as a result of the comparison operation that:

a microservice receives the same payload type as another microservice, and

the microservice outputs the same payload type as the other microservice;

making a recommendation to eliminate a microservice and use another microservice based on the determined result of the comparison operation; and

making a further recommendation to consolidate functionality of the microservice with the other microservice when the microservice consistently communicates with the same microservices as the other microservice and has at least some overlapping functionality.

14. The non-transitory, computer-readable storage medium of claim 13 , wherein

the microservice information is retrieved from a datastore, and wherein the microservice information includes information for the microservices provided by microservice owners.

15. The non-transitory, computer-readable storage medium of claim 13 , wherein

the microservice profiles include records respectively associated with the microservice profiles, wherein the record for a profile includes tokenized information including one or more of:

keywords associated with code characteristics of the microservice;

variables and/or function names used by the microservice;

literals used by the microservice; and

text comments associated with the microservice.

16. The non-transitory, computer-readable storage medium of claim 13 , wherein the instructions are further configured for:

displaying, at a user interface, the recommendation to an owner of the microservice;

receiving, from the user interface, a modification of the microservice from the microservice owner based on the recommendation, and

providing the modified microservice to a continuous integration, continuous deployment (CICD) pipeline.

17. The non-transitory, computer-readable storage medium of claim 13 , wherein the lexical analysis comprises identifying the tokens using term frequency-inverse document frequency analysis of the code for the plurality of microservices.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052216/0758) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0680 →
RELEASE OF SECURITY INTEREST AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052216/0758 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2020
From: DINH, HUNG THE; GUPTA, SHUBHAM
To: DELL PRODUCTS L. P.
Reel/Frame 051633/0852 →