# US 11,307,901 B2 · Auto-scaling for allocation of cloud service resources in application deployments

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,307,901 B2
- Document ID: US11307901B2
- Status: Granted
- Kind: B2
- Application number: 16/911,103
- Filed: 2020-06-24
- Published: 2020-10-15
- Granted: 2022-04-19
- Earliest claimed: 2018-02-14
- Assignees: Citrix Systems, Inc.
- Applicants: Citrix Systems, Inc.
- Inventors: Yongyu Chen; John Carlo Vincent Cattaneo
- Web page: https://patentgrep.com/patent/US11307901B2

## CPC

- G06F 9/505: {considering the load}
- H04L 41/082: the condition being updates or upgrades of network functionality
- H04L 43/062: related to network traffic
- H04L 43/0876: Network utilisation, e.g. volume of load or congestion level
- H04L 47/83: based on usage prediction
- G06F 8/65: Updates (security arrangements therefor G06F21/57)
- G06F 9/5072: {Grid computing}
- H04L 41/0806: for initial configuration or provisioning, e.g. plug-and-play
- H04L 41/0893: Assignment of logical groups to network elements
- H04L 41/0896: Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities (flow or congestion control using dynamic resource allocation, e.g. in-call renegotiation, H04L47/76)
- H04L 43/022: by sampling
- H04L 43/16: Threshold monitoring
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## 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

### Claim 1

A method comprising:
establishing, by one or more processors, a first deployment group of instances for deploying a first application update via a network and a second deployment group of instances for deploying a second application update via the network;
identifying, by the one or more processors, a base capacity of the second deployment group of instances for performing the deployment of the second application update;
initiating, by the one or more processors, the deployment of the second application update to the second deployment group of instances via the network based on the base capacity;
monitoring, by the one or more processors, first network traffic for the deployment of the first deployment group of instances, a second network traffic for the deployment of the second deployment group of instances, and a current capacity of the second deployment group of instances, subsequent to the initiation of the deployment of the second application update at the base capacity; and
controlling, by the one or more processors, the first network traffic for the deployment of the first application update to the first deployment group of instances and the second network traffic for the deployment of the second application update to the second deployment group of instances based on the current capacity of the second deployment group of instances and on a division of network bandwidth between the first network traffic and the second network traffic.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
determining, by the one or more processors, that the current capacity of the second deployment group of instances is greater than a predetermined capacity threshold for initiating routing of the first network traffic to the second deployment group of instances; and
wherein controlling the first network traffic and the second network traffic further comprises routing the first network traffic to the second deployment group of instances responsive to determining that the current capacity of the second deployment group of instances is greater than the predetermined capacity threshold.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
determining, by the one or more processors, that the first network traffic for the deployment of the first application update is null and that the second network traffic for the deployment of the second application update is at complete capacity; and
terminating, by the one or more processors, the first deployment group of instances for the deployment of the first application update responsive to the determination that the first network traffic is null and that the second network traffic is at complete capacity.

### Claim 4 (depends on 1)

The method of claim 1, wherein identifying the base capacity for the second deployment group of instances further comprises:
identifying, a number of instances initially operational in the second deployment group of instances, responsive to establishing the second deployment group of instances; and
determining the base capacity for the second deployment group of instances based on the number of instances identified as initially operational in the second deployment group of instances.

### Claim 5 (depends on 1)

The method of claim 1, wherein monitoring the first network traffic, the second network traffic, and the current capacity further comprises detecting a new operational instance in the second deployment group of instances;
wherein controlling the first network traffic and the second network traffic further comprises routing the first network traffic to the second deployment group of instances, responsive to detecting the new operational instance in the second deployment group of instances.

### Claim 6 (depends on 1)

The method of claim 1, wherein monitoring the first network traffic, the second network traffic, and the current capacity further comprises detecting that a previously operational instance of the second deployment group of instances is inoperative;
wherein controlling the first network traffic and the second network traffic further comprises routing the second network traffic to the first deployment group of instances, responsive to detecting the previously operational instance of the second deployment group of instances is inoperative.

### Claim 7 (depends on 1)

The method of claim 1, wherein monitoring the first network traffic, the second network traffic, and the current capacity further comprises:
identifying a first throughput of communications in the first network traffic for the first deployment group of instances, the first throughput including a first set of responses from a deployment proxy and a first set of requests from the first deployment group of instances for the deployment of the first application update;
identifying a second throughput of communications in the second network traffic for the second deployment group of instances, the second throughput including a second set of responses from the deployment proxy and a second set of requests from the first deployment group of instances for the deployment of the second application update; and
identifying a current number of instances operational in the second deployment group of instances for processing the first set of responses, the second set of responses, the first set of requests, and the second set of requests for the second deployment group of instances.

### Claim 8 (depends on 1)

The method of claim 1, wherein controlling the first network traffic and the second network traffic further comprises:
initializing an additional instance in the second deployment group of instances based on the division of network bandwidth between the first network traffic and the second network traffic; and
routing the first network traffic to the second deployment group of instances based on the second network traffic responsive to initializing the additional instance in the second deployment group of instances.

### Claim 9 (depends on 1)

The method of claim 1, wherein establishing the first deployment group of instances further comprises establishing the first deployment group of instances for deploying the first application update via a first load balancer interfacing with the network, each instance of the first deployment group of instances corresponding to a respective server; and
wherein establishing the second deployment group of instances further comprises establishing the second deployment group of instances for deploying the second application update via a second load balancer interfacing with the network, each instance of the second deployment group of instances corresponding to a respective server.

### Claim 10 (depends on 1)

The method of claim 1, further comprising:
receiving, by the one or more processors, a request to deploy the second application update to instances; and
instantiating, by the one or more processors, a load balancer for the second deployment group of instances for the deployment of the second application update.

### Claim 11

A system comprising:
one or more processors, coupled to memory, and configured to:
establish a first deployment group of instances for deploying a first application update via a network and a second deployment group of instances for deploying a second application update via the network;
identify a base capacity of the second deployment group of instances for performing the deployment of the second application update;
initiate the deployment of the second application update to the second deployment group of instances via the network based on the base capacity;
monitor first network traffic for the deployment of the first deployment group of instances, a second network traffic for the deployment of the second deployment group of instances, and a current capacity of the second deployment group of instances, subsequent to the initiation of the deployment of the second application update at the base capacity; and
control the first network traffic for the deployment of the first application update to the first deployment group of instances and the second network traffic for the deployment of the second application update to the second deployment group of instances based on the current capacity of the second deployment group of instances and on a division of network bandwidth between the first network traffic and the second network traffic.

### Claim 12 (depends on 11)

The system of claim 11, wherein the one or more processors are further configured to:
determine that the current capacity of the second deployment group of instances is greater than a predetermined capacity threshold for initiating routing of the first network traffic to the second deployment group of instances; and
wherein controlling the first network traffic and the second network traffic further comprises routing the first network traffic to the second deployment group of instances responsive to determining that the current capacity of the second deployment group of instances is greater than the predetermined capacity threshold.

### Claim 13 (depends on 11)

The system of claim 11, wherein the one or more processors are further configured to:
determine that the first network traffic for the deployment of the first application update is null and that the second network traffic for the deployment of the second application update is at complete capacity; and
terminate the first deployment group of instances for the deployment of the first application update responsive to the determination that the first network traffic is null and that the second network traffic is at complete capacity.

### Claim 14 (depends on 11)

The system of claim 11, wherein the one or more processors are further configured to:
identify a number of instances initially operational in the second deployment group of instances, responsive to establishing the second deployment group of instances; and
determine the base capacity for the second deployment group of instances based on the number of instances identified as initially operational in the second deployment group of instances.

### Claim 15 (depends on 11)

The system of claim 11, wherein the one or more processors are further configured to:
detect a new operational instance in the second deployment group of instances and route the first network traffic to the second deployment group of instances, responsive to detecting the new operational instance in the second deployment group of instances.

### Claim 16 (depends on 11)

The system of claim 11, wherein the one or more processors are further configured to detect that a previously operational instance of the second deployment group of instances is inoperative and route the second network traffic to the first deployment group of instances, responsive to detecting the previously operational instance of the second deployment group of instances is inoperative.

### Claim 17 (depends on 11)

The system of claim 11, wherein the one or more processors are further configured to:
identify a first throughput of communications in the first network traffic for the first deployment group of instances, the first throughput including a first set of responses from a deployment proxy and a first set of requests from the first deployment group of instances for the deployment of the first application update;
identify a second throughput of communications in the second network traffic for the second deployment group of instances, the second throughput including a second set of responses from the deployment proxy and a second set of requests from the first deployment group of instances for the deployment of the second application update; and
identify a current number of instances operational in the second deployment group of instances for processing the first set of responses, the second set of responses, the first set of requests, and the second set of requests for the second deployment group of instances.

### Claim 18 (depends on 11)

The system of claim 11, wherein the one or more processors are further configured to:
initialize an additional instance in the second deployment group of instances based on the division of network bandwidth between the first network traffic and the second network traffic; and
route the first network traffic to the second deployment group of instances based on the second network traffic responsive to initializing the additional instance in the second deployment group of instances.

### Claim 19 (depends on 11)

The system of claim 11, wherein the one or more processors are further configured to establish the first deployment group of instances for deploying the first application update via a first load balancer interfacing with the network, each instance of the first deployment group of instances corresponding to a respective server; and
establish the second deployment group of instances further comprises establishing the second deployment group of instances for deploying the second application update via a second load balancer interfacing with the network, each instance of the second deployment group of instances corresponding to a respective server.

### Claim 20 (depends on 11)

The system of claim 11, wherein the one or more processors are further configured to:
receive a request to deploy the second application update to instances; and
instantiate, a load balancer for the second deployment group of instances for the deployment of the second application update.
