# US 10,454,844 B2 · Dynamic capacity planning for application delivery platform across multiple cloud deployment

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

- Number: US 10,454,844 B2
- Document ID: US10454844B2
- Status: Granted
- Kind: B2
- Application number: 15/453,757
- Filed: 2017-03-08
- Published: 2018-09-13
- Granted: 2019-10-22
- Earliest claimed: 2017-03-08
- Assignees: A10 Networks, Inc.
- Applicants: A10 Networks, Inc.
- Inventors: Saurabh Sureka
- Web page: https://patentgrep.com/patent/US10454844B2

## CPC

- H04L 47/762: triggered by the network
- 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/0876: Network utilisation, e.g. volume of load or congestion level
- H04L 43/16: Threshold monitoring
- H04L 47/748: {Negotiation of resources, e.g. modification of a request}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method for dynamic allocating of a resource capacity in a cloud computing deployment is disclosed. According to the method, a resource capacity allocation of a network instance is determined and a resource capacity demand of the network instance is monitored. If the resource capacity demand exceeds a first threshold value, the resource capacity allocation of the network instance is increased by allocating additional resource capacity of a shared pool of network instances. However, if the resource capacity demand falls below a second threshold value, the resource capacity allocation of the network instance is decreased by deallocating the additional resource capacity back to the shared pool of network instances.

## Claims

### Claim 1

A method for dynamic allocating of a resource capacity in a cloud computing deployment, the method comprising:
receiving an allocation request from a network instance generated during a pre-boot operation of the network instance, the allocation request being based on a predicted traffic demand of the network instance, wherein the network instance includes a network device connected to a data network;
providing an initial resource capacity allocation of the network instance by allocating initial resource capacity of a shared pool of network instances, wherein the initial resource capacity is determined based on the allocation request, wherein the shared pool of network instances includes a plurality of network instances connected to the data network, the shared pool being created by providing an identifier to each of the plurality of network instances, the identifier being stored at each of the plurality of network instances and indicative of an association of each of the plurality of network instances to the shared pool;
monitoring a resource capacity demand of the network instance;
if the resource capacity demand exceeds a first threshold value, increasing the initial resource capacity allocation of the network instance by allocating additional resource capacity of the shared pool of network instances; and
if the resource capacity demand falls below a second threshold value, decreasing the initial resource capacity allocation of the network instance by deallocating the additional resource capacity back to the shared pool of network instances.

### Claim 2 (depends on 1)

The method of claim 1, wherein the monitoring of the resource capacity demand of the network instance is performed by the network instance; and
wherein the increasing or decreasing of the initial resource capacity allocation of the network instance is performed by a controller of the shared pool.

### Claim 3 (depends on 1)

The method of claim 1, wherein the monitoring of the resource capacity demand of the network instance is performed by a controller of the shared pool; and
wherein the increasing or decreasing of the initial resource capacity allocation of the network instance is performed by the controller of the shared pool.

### Claim 4 (depends on 1)

The method of claim 1, wherein the shared pool of network instances includes at least a first set of network instances deployed at a first site, a second set of network instances deployed at a second site, and a third set of network instances deployed at a third site.

### Claim 5 (depends on 4)

The method of claim 4, wherein each of the first site, the second site, and the third site have the same or substantially same resource capacity.

### Claim 6 (depends on 1)

The method of claim 1, wherein the resource capacity demand of the network instance is monitored by measuring an incoming data traffic to the network instance.

### Claim 7 (depends on 1)

The method of claim 1, wherein the initial resource capacity allocation is increased or decreased based on dynamic control.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
creating the shared pool of network instances by generating a plurality of tokens, wherein the tokens reside at the network instances of the shared pool.

### Claim 9 (depends on 8)

The method of claim 8, wherein each of the tokens indicates an association of the network instance to the shared pool of network instances.

### Claim 10 (depends on 8)

The method of claim 8, wherein the shared pool of network instances is created during a pre-boot time of the network instances.

### Claim 11

A system for dynamic allocating of a resource capacity in a cloud computing deployment, the system comprising at least one processor and at least one memory storing processor-executable codes, wherein the at least one processor is configured to implement the following operations upon executing the processor-executable codes:
receiving an allocation request from a network instance generated during a pre-boot operation of the network instance, the allocation request being based on a predicted traffic demand of the network instance, wherein the network instance includes a network device connected to a data network;
providing an initial resource capacity allocation of the network instance by allocating initial resource capacity of a shared pool of network instances, wherein the initial resource capacity is determined based on the allocation request, wherein the shared pool of network instances includes a plurality of network instances connected to the data network, the shared pool being created by providing an identifier to each of the plurality of network instances, the identifier being stored at each of the plurality of network instances and indicative of an association of each of the plurality of network instances to the shared pool;
monitoring a resource capacity demand of the network instance;
if the resource capacity demand exceeds a first threshold value, increasing the initial resource capacity allocation of the network instance by allocating additional resource capacity of the shared pool of network instances; and
if the resource capacity demand falls below a second threshold value, decreasing the initial resource capacity allocation of the network instance by deallocating the additional resource capacity back to the shared pool of network instances.

### Claim 12 (depends on 11)

The system of claim 11, wherein the shared pool of network instances includes at least a first set of network instances deployed at a first site, a second set of network instances deployed at a second site, and a third set of network instances deployed at a third site.

### Claim 13 (depends on 12)

The system of claim 12, wherein each of the first site, the second site, and the third site have the same or substantially same resource capacity.

### Claim 14 (depends on 11)

The system of claim 11, wherein the resource capacity demand of the network instance is monitored by measuring an incoming data traffic to the network instance.

### Claim 15 (depends on 11)

The system of claim 11, wherein the initial resource capacity allocation is increased or decreased based on dynamic control.

### Claim 16 (depends on 11)

The system of claim 11, wherein each of the network instances includes a token indicating an association of the network instance with the shared pool of network instances.

### Claim 17 (depends on 11)

The system of claim 11, wherein the shared pool of network instances is created during a pre-boot time of the network instances.

### Claim 18

A method for dynamic allocating of a resource capacity in a cloud computing deployment, the method comprising:
receiving an allocation request from a network instance generated during a pre-boot operation of the network instance, the allocation request being based on a predicted traffic demand of the network instance, wherein the network instance includes a network device connected to a data network;
providing initial resource capacity allocation of the network instance by allocating initial resource capacity of a shared pool of network instances, wherein the initial resource capacity is determined based on the allocation request, wherein the shared pool of network instances includes a plurality of network instances connected to the data network, the shared pool being created by providing an identifier to each of the plurality of network instances, the identifier being stored at each of the plurality of network instances and indicative of an association of each of the plurality of network instances to the shared pool;
determining a resource capacity allocation of the network instance;
monitoring a resource capacity demand of the network instance;
if the resource capacity demand exceeds a first threshold value, increasing the resource capacity allocation of the network instance by allocating additional resource capacity of the shared pool of network instances, the shared pool of network instances including at least a first set of network instances deployed at a first site, a second set of network instances deployed at a second site, and a third set of network instances deployed at a third site, each of the first site, the second site, and the third site having substantially the same resource capacity; and
if the resource capacity demand falls below a second threshold value, decreasing the resource capacity allocation of the network instance by deallocating the additional resource capacity back to the shared pool of network instances.

### Claim 19 (depends on 18)

The method of claim 18, wherein the monitoring of the resource capacity demand of the network instance is performed by the network instance; and
wherein the increasing or decreasing of the resource capacity allocation of the network instance is performed by a controller of the shared pool.

### Claim 20 (depends on 18)

The method of claim 18, wherein the monitoring of the resource capacity demand of the network instance is performed by a controller of the shared pool; and
wherein the increasing or decreasing of the resource capacity allocation of the network instance is performed by the controller of the shared pool.

### Claim 21 (depends on 18)

The method of claim 18, wherein the resource capacity demand of the network instance is monitored by measuring an incoming data traffic to the network instance.

### Claim 22 (depends on 18)

The method of claim 18, wherein the resource capacity allocation is increased or decreased based on dynamic control.

### Claim 23 (depends on 18)

The method of claim 18, further comprising:
creating the shared pool of network instances by generating a plurality of tokens, wherein the tokens reside at the network instances of the shared pool.

### Claim 24 (depends on 23)

The method of claim 23, wherein each of the tokens indicates an association of the network instance to the shared pool of network instances.

### Claim 25 (depends on 23)

The method of claim 23, wherein the shared pool of network instances is created during a pre-boot time of the network instances.

### Claim 26

A method for dynamic allocating of a resource capacity in a cloud computing deployment, the method comprising:
receiving an allocation request from a network instance generated during a pre-boot operation of the network instance, the allocation request being based on predicted traffic demand of the network instance, wherein the network instance includes a network device connected to a data network;
providing initial resource capacity allocation of the network instance by allocating initial resource capacity of a shared pool of network instances, wherein the initial resource capacity is determined based on the allocation request, wherein the shared pool of network instances includes a plurality of network instances connected to the data network, the shared pool being created by providing an identifier to each of the plurality of network instances, the identifier being stored at each of the plurality of network instances and indicative of an association of each of the plurality of network instances to the shared pool;
determining a resource capacity allocation of the network instance;
monitoring a resource capacity demand of the network instance;
if the resource capacity demand exceeds a first threshold value, increasing the resource capacity allocation of the network instance by allocating additional resource capacity of the shared pool of network instances, the shared pool of network instances being created by generating a plurality of tokens, the tokens residing at the network instances of the shared pool, and the shared pool of network instances being created during a pre-boot time of the network instances; and
if the resource capacity demand falls below a second threshold value, decreasing the resource capacity allocation of the network instance by deallocating the additional resource capacity back to the shared pool of network instances.

### Claim 27 (depends on 26)

The method of claim 26, wherein the monitoring of the resource capacity demand of the network instance is performed by the network instance; and
wherein the increasing or decreasing of the resource capacity allocation of the network instance is performed by a controller of the shared pool.

### Claim 28 (depends on 26)

The method of claim 26, wherein the monitoring of the resource capacity demand of the network instance is performed by a controller of the shared pool; and
wherein the increasing or decreasing of the resource capacity allocation of the network instance is performed by the controller of the shared pool.

### Claim 29 (depends on 26)

The method of claim 26, wherein the shared pool of network instances includes at least a first set of network instances deployed at a first site, a second set of network instances deployed at a second site, and a third set of network instances deployed at a third site.

### Claim 30 (depends on 29)

The method of claim 29, wherein each of the first site, the second site, and the third site have the same or substantially same resource capacity.

### Claim 31 (depends on 26)

The method of claim 26, wherein the resource capacity demand of the network instance is monitored by measuring an incoming data traffic to the network instance.

### Claim 32 (depends on 26)

The method of claim 26, wherein the resource capacity allocation is increased or decreased based on dynamic control.

### Claim 33 (depends on 26)

The method of claim 26, wherein each of the tokens indicates an association of the network instance to the shared pool of network instances.

### Claim 34

A system for dynamic allocating of a resource capacity in a cloud computing deployment, the system comprising at least one processor and at least one memory storing processor-executable codes, wherein the at least one processor is configured to implement the following operations upon executing the processor-executable codes:
receiving an allocation request from a network instance generated during a pre-boot operation of the network instance, the allocation request being based on predicted traffic demand of the network instance, wherein the network instance includes a network device connected to a data network;
providing initial resource capacity allocation of the network instance by allocating initial resource capacity of a shared pool of network instances, wherein the initial resource capacity is determined based on the allocation request, wherein the shared pool of network instances includes a plurality of network instances connected to the data network, the shared pool being created by providing an identifier to each of the plurality of network instances, the identifier being stored at each of the plurality of network instances and indicative of an association of each of the plurality of network instances to the shared pool;
monitoring a resource capacity demand of the network instance;
if the resource capacity demand exceeds a first threshold value, increasing the initial resource capacity allocation of the network instance by allocating additional resource capacity of the shared pool of network instances; and
if the resource capacity demand falls below a second threshold value, decreasing the initial resource capacity allocation of the network instance by deallocating the additional resource capacity back to the shared pool of network instances.

### Claim 35 (depends on 34)

The system of claim 34, wherein the shared pool of network instances includes at least a first set of network instances deployed at a first site, a second set of network instances deployed at a second site, and a third set of network instances deployed at a third site.

### Claim 36 (depends on 35)

The system of claim 35, wherein each of the first site, the second site, and the third site have the same or substantially same resource capacity.

### Claim 37 (depends on 34)

The system of claim 34, wherein the resource capacity demand of the network instance is monitored by measuring an incoming data traffic to the network instance.

### Claim 38 (depends on 34)

The system of claim 34, wherein the initial resource capacity allocation is increased or decreased based on dynamic control.

### Claim 39 (depends on 34)

The system of claim 34, wherein each of the network instances includes a token indicating an association of the network instance with the shared pool of network instances.

### Claim 40 (depends on 34)

The system of claim 34, wherein the shared pool of network instances is created during a pre-boot time of the network instances.

### Claim 41

A system for dynamic allocating of a resource capacity in a cloud computing deployment, the system comprising at least one processor, at least one memory storing processor-executable codes, and a controller of a shared pool, wherein the controller of the shared pool is configured to:
receive an allocation request from a network instance generated during a pre-boot operation of the network instance, the allocation request being based on predicted traffic demand of the network instance, wherein the network instance includes a network device connected to a data network; and
provide initial resource capacity allocation of the network instance by allocating initial resource capacity of the shared pool of network instances, wherein the initial resource capacity is determined based on the allocation request, wherein the shared pool of network instances includes a plurality of network instances connected to the data network, the shared pool being created by providing an identifier to each of the plurality of network instances, the identifier being stored at each of the plurality of network instances and indicative of an association of each of the plurality of network instances to the shared pool;
wherein the at least one processor is configured to implement the following operations upon executing the processor-executable codes:
determining a resource capacity allocation of the network instance;
monitoring a resource capacity demand of the network instance;
if the resource capacity demand exceeds a first threshold value, increasing the resource capacity allocation of the network instance by allocating additional resource capacity of the shared pool of network instances, the shared pool of network instances including at least a first set of network instances deployed at a first site, a second set of network instances deployed at a second site, and a third set of network instances deployed at a third site, each of the first site, the second site, and the third site having substantially the same resource capacity; and
if the resource capacity demand falls below a second threshold value, decreasing the resource capacity allocation of the network instance by deallocating the additional resource capacity back to the shared pool of network instances.

### Claim 42 (depends on 41)

The system of claim 41, wherein the resource capacity demand of the network instance is monitored by measuring an incoming data traffic to the network instance.

### Claim 43 (depends on 41)

The system of claim 41, wherein the resource capacity allocation is increased or decreased based on dynamic control.

### Claim 44 (depends on 41)

The system of claim 41, wherein each of the network instances includes a token indicating an association of the network instance with the shared pool of network instances.

### Claim 45 (depends on 41)

The system of claim 41, wherein the shared pool of network instances is created during a pre-boot time of the network instances.

### Claim 46

A system for dynamic allocating of a resource capacity in a cloud computing deployment, the system comprising at least one processor, at least one memory storing processor-executable codes, and a controller of a shared pool, wherein the controller of the shared pool is configured to:
receive an allocation request from a network instance generated during a pre-boot operation of the network instance, the allocation request being based on predicted traffic demand of the network instance, wherein the network instance includes a network device connected to a data network; and
provide initial resource capacity allocation of the network instance by allocating initial resource capacity of the shared pool of network instances, wherein the initial resource capacity is determined based on the allocation request, wherein the shared pool of network instances includes a plurality of network instances connected to the data network, the shared pool being created by providing an identifier to each of the plurality of network instances, the identifier being stored at each of the plurality of network instances and indicative of an association of each of the plurality of network instances to the shared pool;
wherein the at least one processor is configured to implement the following operations upon executing the processor-executable codes:
determining a resource capacity allocation of the network instance;
monitoring a resource capacity demand of the network instance;
if the resource capacity demand exceeds a first threshold value, increasing the resource capacity allocation of the network instance by allocating additional resource capacity of the shared pool of network instances, the shared pool of network instances being created during a pre-boot time of the network instances; and
if the resource capacity demand falls below a second threshold value, decreasing the resource capacity allocation of the network instance by deallocating the additional resource capacity back to the shared pool of network instances.

### Claim 47 (depends on 46)

The system of claim 46, wherein the shared pool of network instances includes at least a first set of network instances deployed at a first site, a second set of network instances deployed at a second site, and a third set of network instances deployed at a third site.

### Claim 48 (depends on 47)

The system of claim 47, wherein each of the first site, the second site, and the third site have the same or substantially same resource capacity.

### Claim 49 (depends on 46)

The system of claim 46, wherein the resource capacity demand of the network instance is monitored by measuring an incoming data traffic to the network instance.

### Claim 50 (depends on 46)

The system of claim 46, wherein the resource capacity allocation is increased or decreased based on dynamic control.

### Claim 51 (depends on 46)

The system of claim 46, wherein each of the network instances includes a token indicating an association of the network instance with the shared pool of network instances.
