Dynamic discovery and management of microservices for multi-cluster computing platforms
First Claim
1. A computer-implemented method for processing a request from a client, the method comprising:
- receiving from a client a request for a computer-implemented process to be performed, the computer-implemented process requiring at least one microservice for performing a specified database function and/or generating a report in response to a database request;
identifying a group of computer resources responsible for performing the computer-implemented process;
determining, using a microservice dependency graph, dependency information indicating dependency relationships between pairs of computer resources of the identified group;
for pairs of computer resources determined to have a dependency relationship, determining at multiple points in time cost information indicating a cost incurred when a first computer resource of the pair invokes a second computer resource of the pair;
determining whether to add additional computer resources to the group based on the cost information; and
executing the requested computer-implemented process using the additional computer resources when it is determined to add such additional computer resources;
wherein;
a resource manager monitors invocations of microservices and either dynamically updates an existing microservice dependency graph with nodes reflecting an invocation of a microservice or generates a new microservice dependency graph with nodes reflecting an invocation of a microservice if a microservice dependency graph does not exist;
the determining of whether to add additional computer resources to the group based on the cost information comprises;
using the cost information to calculate an average cost of invoking a given computer resource at a time of day over a predetermined period of time;
comparing the calculated average to a threshold value;
based on a determination that the average is not greater than the threshold value, determining that the additional computer resources are not to be added to the group; and
based on a determination that the average is greater than or equal to the threshold value, determining that the additional computer resources are to be added to the group.
1 Assignment
0 Petitions
Accused Products
Abstract
Computer-implemented systems and methods for processing a request from a client are provided. A request for a computer-implemented process to be performed is received from a client. A group of computer resources responsible for performing the computer-implemented process is identified. Dependency information indicating dependency relationships between pairs of computer resources of the identified group is determined. For pairs of computer resources determined to have a dependency relationship, a cost incurred when a first computer resource of the pair invokes a second computer resource of the pair is determined at multiple points in time. It is determined whether to add, remove, or migrate additional computer resources to the group based on the cost information.
83 Citations
18 Claims
-
1. A computer-implemented method for processing a request from a client, the method comprising:
-
receiving from a client a request for a computer-implemented process to be performed, the computer-implemented process requiring at least one microservice for performing a specified database function and/or generating a report in response to a database request; identifying a group of computer resources responsible for performing the computer-implemented process; determining, using a microservice dependency graph, dependency information indicating dependency relationships between pairs of computer resources of the identified group; for pairs of computer resources determined to have a dependency relationship, determining at multiple points in time cost information indicating a cost incurred when a first computer resource of the pair invokes a second computer resource of the pair; determining whether to add additional computer resources to the group based on the cost information; and executing the requested computer-implemented process using the additional computer resources when it is determined to add such additional computer resources; wherein; a resource manager monitors invocations of microservices and either dynamically updates an existing microservice dependency graph with nodes reflecting an invocation of a microservice or generates a new microservice dependency graph with nodes reflecting an invocation of a microservice if a microservice dependency graph does not exist; the determining of whether to add additional computer resources to the group based on the cost information comprises; using the cost information to calculate an average cost of invoking a given computer resource at a time of day over a predetermined period of time; comparing the calculated average to a threshold value; based on a determination that the average is not greater than the threshold value, determining that the additional computer resources are not to be added to the group; and based on a determination that the average is greater than or equal to the threshold value, determining that the additional computer resources are to be added to the group. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer-implemented system for processing a request from a client, the system comprising:
-
a processing system including at least one programmable data processor; and computer-readable memory in communication with the processing system encoded with instructions for commanding the processing system to execute steps comprising; receiving from a client a request for a computer-implemented process to be performed, the computer-implemented process requiring at least one microservice for performing a specified database function and/or generating a report in response to a database request; identifying a group of computer resources responsible for performing the computer-implemented process; determining, using a microservice dependency graph, dependency information indicating dependency relationships between pairs of computer resources of the identified group; for pairs of computer resources determined to have a dependency relationship, determining at multiple points in time cost information indicating a cost incurred when a first computer resource of the pair invokes a second computer resource of the pair; determining whether to add additional computer resources to the group based on the cost information; and executing the requested computer-implemented process using the additional computer resources when it is determined to add such additional computer resources; wherein; a resource manager monitors invocations of microservices and either dynamically updates an existing microservice dependency graph with nodes reflecting an invocation of a microservice or generates a new microservice dependency graph with nodes reflecting an invocation of a microservice if a microservice dependency graph does not exist; the determining of whether to add additional computer resources to the group based on the cost information comprises; using the cost information to calculate an average cost of invoking a given computer resource at a time of day over a predetermined period of time; comparing the calculated average to a threshold value; based on a determination that the average is not greater than the threshold value, determining that the additional computer resources are not to be added to the group; and based on a determination that the average is greater than or equal to the threshold value, determining that the additional computer resources are to be added to the group. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A non-transitory computer-readable storage medium for processing a request from a client, the computer-readable storage medium comprising computer executable instructions which, when executed, cause a processing system including at least one programmable data processor to execute steps including:
-
receiving from a client a request for a computer-implemented process to be performed, the computer-implemented process requiring at least one microservice for performing a specified database function and/or generating a report in response to a database request; identifying a group of computer resources responsible for performing the computer-implemented process; determining, using a microservice dependency graph, dependency information indicating dependency relationships between pairs of computer resources of the identified group; for pairs of computer resources determined to have a dependency relationship, determining at multiple points in time cost information indicating a cost incurred when a first computer resource of the pair invokes a second computer resource of the pair; determining whether to add additional computer resources to the group based on the cost information; and executing the requested computer-implemented process using the additional computer resources when it is determined to add such additional computer resources; wherein; a resource manager monitors invocations of microservices and either dynamically updates an existing microservice dependency graph with nodes reflecting an invocation of a microservice or generates a new microservice dependency graph with nodes reflecting an invocation of a microservice if a microservice dependency graph does not exist; the determining of whether to add additional computer resources to the group based on the cost information comprises; using the cost information to calculate an average cost of invoking a given computer resource at a time of day over a predetermined period of time; comparing the calculated average to a threshold value; based on a determination that the average is not greater than the threshold value, determining that the additional computer resources are not to be added to the group; and based on a determination that the average is greater than or equal to the threshold value, determining that the additional computer resources are to be added to the group. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification