Automatic scaling of microservices applications
A device may receive information identifying a set of tasks to be executed by a microservices application that includes a plurality of microservices. The device may determine an execution time of the set of tasks based on a set of parameters and a model. The set of parameters may include a first parameter that identifies a first number of instances of a first microservice of the plurality of microservices, and a second parameter that identifies a second number of instances of a second microservice of the plurality of microservices. The device may compare the execution time and a threshold. The threshold may be associated with a service level agreement. The device may selectively adjust the first number of instances or the second number of instances based on comparing the execution time and the threshold.
1. A device, comprising:
a memory; and
one or more processors to:
receive information identifying one or more tasks to be executed by a microservices application,
the microservices application being associated with a first microservice and a second microservice;
determine a comparison between an overall time and a threshold time,
the overall time including a first time, of a first task associated with the first microservice, and a second time, of a second task associated with the second microservice, and
the overall time associated with completion of the microservices application; and
execute a number of instances of the first microservice based on the comparison.
2. The device of claim 1 , where the first time is a first execution time and the second time is a second execution time,
where the one or more processors, when determining the comparison, are to:
determine the comparison in execution times between the first execution time of the first task and the second execution time of the second task.
3. The device of claim 1 , where the one or more processors are further to:
determine threshold time based on a service level agreement;
selectively adjust a first number of instances of the first microservice or a second number of instances of the second microservice based on comparing the overall time and the threshold time; and
wherein the one or more processors, to execute the number of instances of the first microservice, are to:
execute the number of instances of the first microservice based selectively adjusting the first number of instances.
4. The device of claim 1 , where the one or more processors are further to:
increase the number of instances of the first microservice; and
update the first time based on the number of instances.
5. The device of claim 1 , where the one or more processors are further to:
implement a machine learning technique to determine the first time of the first task.
6. The device of claim 1 , where the one or more processors are further to:
determine the first time and the second time based on a number of the one or more tasks to be executed.
7. The device of claim 1 , where the one or more processors, when executing the number of instances of the first microservice based on the comparison, are to:
selectively adjust the number of instances of the first microservice to enable a quantity of one or more of a plurality of first tasks associated with the first microservice to be executed in an expected time.
8. A non-transitory computer-readable medium storing instructions, the instructions comprising:
one or more instructions that, when executed by one or more processors of a first maintenance endpoint (MEP) device, cause the one or more processors to:
receive information identifying one or more tasks to be executed by a microservices application,
the microservices application being associated with a first microservice and a second microservice;
determine a comparison between an overall time and a threshold time,
the overall time including a first time, of a first task associated with the first microservice, and a second time, of a second task associated with the second microservice, and
the overall time associated with completion of the microservices application; and
execute a number of instances of the first microservice based on the comparison.
9. The non-transitory computer-readable medium of claim 8 , where the first time is a first execution time and the second time is a second execution time, and
where the one or more instructions to determine the comparison cause the one or more processors to:
determine the comparison in execution time between the first execution time of the first task and the second execution time of the second task.
10. The non-transitory computer-readable medium of claim 8 , where the one or more instructions, when executed by the one or more processors, further cause the one or more processors to:
determine threshold time based on a service level agreement;
selectively adjust a first number of instances of the first microservice or a second number of instances of the second microservice based on comparing the overall time and the threshold time; and
where the one or more instructions to execute the number of instances of the first microservice cause the one or more processors:
execute the number of instances of the first microservice based on selectively adjusting the first number of instances.
11. The non-transitory computer-readable medium of claim 8 , where the one or more instructions, when executed by the one or more processors, further cause the one or more processors to:
allocate the number of instances of the first microservice in a linear or an exponential manner.
12. The non-transitory computer-readable medium of claim 8 , where the first time is based on a percentage completion of a plurality of first tasks associated with the first microservice.
13. The non-transitory computer-readable medium of claim 8 , where the one or more instructions further cause the one or more processors to:
increase the number of instances of the first microservice; and
update the first time based on the number of instances.
14. The non-transitory computer-readable medium of claim 8 , where the one or more instructions to execute the number of instances of the first microservice cause the one or more processors:
selectively adjust a quantity of one or more of a plurality of first tasks associated with the first microservice.
15. A method, comprising:
receiving, by a device, information identifying one or more tasks to be executed by a microservices application,
the microservices application being associated with a first microservice and a second microservice;
determining, by the device, a comparison between an overall time and a threshold time,
the overall time including a first time, of a first task associated with the first microservice, and a second time of a second task associated with the second microservice, and
the overall time associated with completion of the microservices application; and
executing, by the device, a number of instances of the first microservice based on the comparison.
16. The method of claim 15 , where the first time is a first execution time and the second time is a second execution time,
where determining the comparison comprises:
determining the comparison in execution time between the first execution time of the first task and the second execution time of the second task.
17. The method of claim 15 , further comprising:
determining threshold time based on a service level agreement;
selectively adjusting a first number of instances of the first microservice or a second number of instances of the second microservice based on comparing the overall time and the threshold time; and
wherein executing the number of instances of the first microservice comprises:
executing the number of instances of the first microservice based selectively adjusting the first number of instances.
18. The method of claim 15 , further comprising
increasing the number of instances of the first microservice; and
updating the first time based on the number of instances.
19. The method of claim 15 , further comprising:
implementing a machine learning technique to determine the first time of the first task.
20. The method of claim 15 , further comprising:
determining the first time and the second time based on a number of the one or more tasks to be executed.