IP Library › Granted Patent US 11,409,522
Granted Patent B2
US 11,409,522 · App. 16/948,729 · Granted Aug 9, 2022

Automatic scaling of microservices applications

Inventors: Jalandip Lepcha (Sunnyvale, CA); Tong Jiang (Fremont, CA)
Assignee: Juniper Networks, Inc.
G06F9/28G06F9/4843G06F9/5061G06F9/5066G06F9/5083
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,409,522
App. No.
16/948,729
Granted
Aug 9, 2022
Kind
B2
Abstract

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.

Claims (72)

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.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2023
From: LEPCHA, JALANDIP; JIANG, TONG
To: JUNIPER NETWORKS, INC.
Reel/Frame 064778/0386 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 30, 2020
From: LEPCHA, JALANDIP; JIANG, TONG
To: JUNIPER NETWORKS, INC.
Reel/Frame 053932/0952 →
Continuity (3)
Continuation 16270077 · Feb 7, 2019
Continuation 15388014 · Dec 22, 2016
Related Publication 20210034359A1 · Feb 4, 2021