IP Library Granted Patent US 10,698,735
Granted Patent B2
US 10,698,735 · App. 15/896,884 · Granted Jun 30, 2020

Auto-scaling for allocation of cloud service resources in application deployments

Inventors: Yongyu Chen (Nanjing, CN); John Carlo Vincent Cattaneo (Davie, FL)
Assignee: Citrix Systems, Inc.
G06F9/505H04L43/062H04L43/0876H04L47/823G06F8/65G06F9/5072
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 10,698,735
App. No.
15/896,884
Filed
Feb 14, 2018
Granted
Jun 30, 2020
Kind
B2
Art Unit
2454
USPC
709/226
Abstract

Described embodiments provide systems and methods of allocating cloud resources for application deployments. A resource allocator may identify a first metric indicating usage of cloud resources by clients in a first release environment for an application update. The resource allocator may generate, using the first metric, a resource capacity model for predicting usage of the cloud resources by clients in a second release environment for the application update. The resource allocator may determine, using the resource capacity model, a metric predicting the usage of the cloud resources by the clients in the second release environment. The resource allocator may generate instructions to set an allocation of the cloud computing resources for performing deployment of the application update to the second release environment based on the second metric.

Claims (61)

1. A method of allocating cloud resources for application deployments, comprising:

identifying, by a resource allocator executing on one or more processors, a first computing resource metric and a first network traffic metric indicating usage of cloud resources by a first plurality of clients in a first release environment for an application update;

generating, by the resource allocator, using the first computing resource metric and the first network traffic metric, a resource capacity model for predicting usage of the cloud resources by a second plurality of clients in a second release environment for the application update subsequent to the first release environment;

determining, by the resource allocator, using the resource capacity model, a second computing resource metric and a second network traffic metric predicting the usage of the cloud resources by the second plurality of clients in the second release environment; and

generating, by the resource allocator, instructions to set an allocation of the cloud resources for performing deployment of the application update to the second plurality of clients in the second release environment based on the second computing resource metric and the second network traffic metric predicted using the resource capacity model.

2. The method of claim 1 , wherein identifying the first computing resource metric and the first network traffic metric further comprises:

aggregating runtime data from the first plurality of clients running the application update in the first release environment;

applying extract-load-transfer (ETL) onto the aggregated runtime data to calculate the first computing resource metric including a rate of processor resource usage and the first network traffic metric including a rate of requests; and

generating a data pair including the rate of processor resource usage of the first computing resource metric and the rate of requests of the first network traffic metric.

3. The method of claim 1 , wherein identifying the first computing resource metric and the first network traffic metric further comprises:

aggregating first runtime data from the first plurality of clients running the application update in the first release environment;

eliminating one or more outliers identified based on clustering the first runtime data to generate second runtime data; and

determining the first computing resource metric and the first network traffic metric from the second runtime data.

4. The method of claim 1 , wherein identifying the first computing resource metric and the first network traffic metric further comprises:

aggregating Hypertext Transfer Protocol (HTTP) messages communicated by the first plurality of clients running the application update in the first release environment;

identifying a ratio between a number of the first plurality of clients and a number of the second plurality of clients;

sampling the HTTP messages of a pre-specified code based on the ratio between the number of the first plurality of clients and the number of second plurality of clients; and

calculating the first network traffic metric based on the sampling of the HTTP messages.

5. The method of claim 1 , wherein generating the resource capacity model further comprises generating the resource capacity model including a regression model, the regression model comprising the first computing resource metric as an explanatory variable and the first network traffic metric as a dependent variable.

6. The method of claim 1 , wherein generating the resource capacity model further comprises generating the resource capacity model based on a rate of processor resource usage of the first computing resource metric, a rate of requests of the first network traffic metric, and a noise parameter.

7. The method of claim 1 , wherein determining the second computing resource metric and the second network traffic metric furthercomprises:

determining a distribution of consumption metric based on the resource capacity model;

calculating a maximum resource capacity based on a mean value and a standard deviation of the distribution of consumption metric; and

determining the second computing resource metric and the second network traffic metric based on the maximum resource capacity calculated from the mean value and the standard deviation.

8. The method of claim 1 , wherein determining the second computing resource metric and the second network traffic metric further comprises determining the second computing resource metric and the second network traffic metric based on the resource capacity model and a security level measure, the security level measure specified based on a number of instances of the second plurality of clients in the second release environment.

9. The method of claim 1 , further comprising:

identifying, by the resource allocator, while performing deployment of the application update to the second plurality of clients in the second release environment, a third computing resource metric and a third network traffic metric indicating the usage of the cloud resources by the second plurality of clients in the second release environment for the application update;

modifying, by the resource allocator, the resource capacity model based on the third computing resource metric and the third network traffic; and

updating, by the resource allocator, the instructions to set the allocation of the cloud resources for performing the deployment of the application update in a production environment.

10. The method of claim 1 , further comprising executing, by the resource allocator, the instructions to set the allocation of the cloud resources to perform the application update to the second plurality of clients in a production environment corresponding to the second release environment subsequent to a staging environment corresponding to the first release environment.

11. A system for allocating cloud resources for application deployments, comprising:

a resource allocator executable on one or more processors, configured to:

identify a first computing resource metric and a first network traffic metric indicating usage of cloud resources by a first plurality of clients in a first release environment for an application update;

generate, using the first computing resource metric and the first network traffic metric, a resource capacity model for predicting usage of the cloud resources by a second plurality of clients in a second release environment for the application update subsequent to the first release environment;

determine, using the resource capacity model, a second computing resource metric and a second network traffic metric predicting the usage of the cloud resources by the second plurality of clients in the second release environment; and

generate instructions to set an allocation of the cloud resources for performing deployment of the application update to the second plurality of clients in the second release environment based on the second computing resource metric and the second network traffic metric predicted using the resource capacity model.

12. The system of claim 11 , wherein the resource allocator is further configured to:

aggregate runtime data from the first plurality of clients running the application update in the first release environment;

apply extract-load-transfer (ETL) onto the aggregated runtime data to calculate the first computing resource metric including a rate of processor resource usage and the first network traffic metric including a rate of requests; and

generate a data pair including the rate of processor resource usage of the first computing resource metric and the rate of requests of the first network traffic metric.

13. The system of claim 11 , wherein the resource allocator is further configured to:

aggregate first runtime data from the first plurality of clients running the application update in the first release environment;

eliminate one or more outliers identified based on clustering the first runtime data to generate second runtime data; and

determine the first computing resource metric and the first network traffic metric from the second runtime data.

14. The system of claim 11 , wherein the resource allocator is further configured to:

aggregate Hypertext Transfer Protocol (HTTP) messages communicated by the first plurality of clients running the application update in the first release environment;

identify a ratio between a number of the first plurality of clients and a number of the second plurality of clients;

sample the HTTP messages of a pre-specified code based on the ratio between the number of the first plurality of clients and the number of second plurality of clients; and

calculate the first network traffic metric based on the sampling of the HTTP messages.

15. The system of claim 11 , wherein the resource allocator is further configured to generate the resource capacity model including a regression model, the regression model comprising the first computing resource metric as an explanatory variable and the first network traffic metric as a dependent variable.

16. The system of claim 11 , wherein the resource allocator is further configured to generate the resource capacity model based on a rate of processor resource usage of the first computing resource metric, a rate of requests of the first network traffic metric, and a noise parameter.

17. The system of claim 11 , wherein the resource allocator is further configured to:

determine a distribution of consumption metric based on the resource capacity model;

calculate a maximum resource capacity based on a mean value and a standard deviation of the distribution of consumption metric; and

determine the second computing resource metric and the second network traffic metric based on the maximum resource capacity calculated from the mean value and the standard deviation.

18. The system of claim 11 , wherein the resource allocator is further configured to determine the second computing resource metric and the second network traffic metric based on the resource capacity model and a security level measure, the security level measure specified based on a number of instances of the second plurality of clients in the second release environment.

19. The system of claim 11 , the resource allocator further is configured to:

identify, while performing deployment of the application update to the second plurality of clients in the second release environment, a third computing resource metric and a third network traffic metric indicating the usage of the cloud resources by the second plurality of clients in the second release environment for the application update;

modify the resource capacity model based on the third computing resource metric and the third network traffic; and

update the instructions to set the allocation of the cloud resources for performing the deployment of the application update in a production environment.

20. The system of claim 11 , the resource allocator is further configured to execute the instructions to set the allocation of the cloud resources to perform the application update to the second plurality of clients in a production environment corresponding to the second release environment subsequent to a staging environment corresponding to the first release environment.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 15, 2018
From: CHEN, YONGYU; CATTANEO, JOHN CARLO VINCENT
To: CITRIX SYSTEMS, INC.
Reel/Frame 044946/0417 →
Continuity (1)
Related Publication 20190250949A1 · Aug 15, 2019