IP Library Granted Patent US 10,097,621
Granted Patent B2
US 10,097,621 · App. 14/851,205 · Granted Oct 9, 2018

Application deployment engine

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,097,621
App. No.
14/851,205
Granted
Oct 9, 2018
Kind
B2
Abstract

Concepts and technologies are disclosed herein for an application deployment engine. A processor that executes an application deployment engine can receive an application request. The processor can obtain network topology data that indicates availability of resources of a data center, an application template associated with the application, and a running time during which an application placement plan is to be identified out of a large number of placement scenarios within the running time. The application template can describe an application flow path associated with the application. The processor can identify the application placement plan, where the application placement plan can include an optimal placement of the application at the data center, before a given running time expires by pruning the large search space. The processor can generate a command to effect deployment of the application in accordance with the application placement plan.

Claims (86)

1. A method comprising:

receiving, at a processor that executes an application deployment engine, a request for an application;

obtaining, by the processor, network topology data that indicates availability of resources of a data center;

obtaining, by the processor, an application template associated with the application, wherein the application template describes an application flow path associated with the application;

obtaining, by the processor, a running time during which an application placement plan is to be identified from a pool of candidate placement plans;

identifying, by the processor, the application placement plan, wherein the application placement plan comprises an optimal placement of the application at the data center, and wherein identifying the application placement plan comprises determining if half of the running time has expired, and if a determination is made that half of the running time has expired, applying a greedy algorithm to identify a base optimal placement plan for the application, determining a base utilization associated with the base optimal placement plan, and doubling a pruning rate associated with a pruning function; and

generating, by the processor, a command to effect deployment of the application in accordance with the application placement plan.

2. The method of claim 1 , further comprising:

determining, from the pool of candidate placement plans, a candidate placement plan that has a best utilization value; and

attempting placement of the application in accordance with the candidate placement plan.

3. The method of claim 2 , further comprising:

in response to a determination that the candidate placement plan places all components of the application, outputting the candidate placement plan as the optimal placement.

4. The method of claim 2 , further comprising:

in response to a determination that the candidate placement plan does not place all components of the application, determining if the running time has expired; and

in response to a determination that the running time has expired, outputting the base optimal placement plan as the optimal placement.

5. The method of claim 2 , further comprising:

in response to a determination that the candidate placement plan does not place all components of the application, determining if the running time has expired; and

in response to a determination that the running time has not expired,

determining a set of candidate placement plans,

determining a utilization value for each of the set of candidate placement plans,

removing, from the set of candidate placement plans, candidate plans having associated utilization values that exceed a limit,

removing, from the set of candidate placement plans, candidate plans having associated utilization values that exceed the base utilization,

applying the pruning function to the set of candidate placement plans to remove a portion of the set of candidate placement plans in accordance with the pruning rate, and

adding the set of candidate placement plans to the pool of candidate placement plans.

6. The method of claim 1 , further comprising:

if a determination is made that half of the running time has not expired,

determining, from the pool of candidate placement plans, a candidate placement plan that has a best utilization value, and

attempting placement of the application in accordance with the candidate placement plan.

7. A system comprising:

a processor; and

a memory that stores computer-executable instructions that, when executed by the processor, cause the processor to perform operations comprising

receiving a request for an application,

obtaining network topology data that indicates availability of resources of a data center,

obtaining an application template associated with the application, wherein the application template describes an application flow path associated with the application,

obtaining a running time during which an application placement plan is to be identified from a pool of candidate placement plans,

identifying the application placement plan, wherein the application placement plan comprises an optimal placement of the application at the data center, and wherein identifying the application placement plan comprises determining if half of the running time has expired, and if a determination is made that half of the running time has expired, applying a greedy algorithm to identify a base optimal placement plan for the application, determining a base utilization associated with the base optimal placement plan, and doubling a pruning rate associated with a pruning function, and

generating a command to effect deployment of the application in accordance with the application placement plan.

8. The system of claim 7 , wherein identifying the application placement plan further comprises:

determining, from the pool of candidate placement plans, a candidate placement plan that has a best utilization value;

attempting placement of the application in accordance with the candidate placement plan; and

in response to a determination that the candidate placement plan does not place all components of the application, determining if the running time has expired.

9. The system of claim 8 , wherein identifying the application placement plan further comprises:

in response to a determination that the running time has not expired,

determining a set of candidate placement plans,

determining a utilization value for each of the set of candidate placement plans,

removing, from the set of candidate placement plans, candidate plans having associated utilization values that exceed a limit,

removing, from the set of candidate placement plans, candidate plans having associated utilization values that exceed the base utilization,

applying the pruning function to the set of candidate placement plans to remove a portion of the set of candidate placement plans in accordance with the pruning rate, and

adding the set of candidate placement plans to the pool of candidate placement plans.

10. The system of claim 8 , wherein identifying the application placement plan further comprises:

in response to a determination that the candidate placement plan places all components of the application, outputting the candidate placement plan as the optimal placement.

11. The system of claim 8 , wherein the computer-executable instructions stored thereon that, when executed by a processor, cause the processor to perform operations further comprising:

in response to a determination that the candidate placement plan places all components of the application, outputting the candidate placement plan as the optimal placement.

12. The system of claim 8 , wherein the computer-executable instructions stored thereon that, when executed by a processor, cause the processor to perform operations further comprising:

in response to a determination that the running time has expired, outputting the base optimal placement plan as the optimal placement.

13. The system of claim 7 , wherein the computer-executable instructions stored thereon that, when executed by a processor, cause the processor to perform operations further comprising:

if a determination is made that half of the running time has not expired,

determining, from the pool of candidate placement plans, a candidate placement plan that has a best utilization value, and

attempting placement of the application in accordance with the candidate placement plan.

14. A computer storage medium having computer-executable instructions stored thereon that, when executed by a processor, cause the processor to perform operations comprising:

receiving a request for an application;

obtaining network topology data that indicates availability of resources of a data center;

obtaining an application template associated with the application, wherein the application template describes an application flow path associated with the application;

obtaining a running time during which an application placement plan is to be identified from a pool of candidate placement plans;

identifying the application placement plan, wherein the application placement plan comprises an optimal placement of the application at the data center, and wherein identifying the application placement plan comprises determining if half of the running time has expired, and if a determination is made that half of the running time has expired, applying a greedy algorithm to identify a base optimal placement plan for the application, determining a base utilization associated with the base optimal placement plan, and doubling a pruning rate associated with a pruning function; and

generating a command to effect deployment of the application in accordance with the application placement plan.

15. The computer storage medium of claim 14 , wherein identifying the application placement plan further comprises:

determining, from the pool of candidate placement plans, a candidate placement plan that has a best utilization value;

attempting placement of the application in accordance with the candidate placement plan; and

in response to a determination that the candidate placement plan does not place all components of the application, determining if the running time has expired.

16. The computer storage medium of claim 15 , wherein identifying the application placement plan further comprises:

in response to a determination that the running time has not expired,

determining a set of candidate placement plans,

determining a utilization value for each of the set of candidate placement plans,

removing, from the set of candidate placement plans, candidate plans having associated utilization values that exceed a limit,

removing, from the set of candidate placement plans, candidate plans having associated utilization values that exceed the base utilization,

applying the pruning function to the set of candidate placement plans to remove a portion of the set of candidate placement plans in accordance with the pruning rate, and

adding the set of candidate placement plans to the pool of candidate placement plans.

17. The computer storage medium of claim 15 , wherein the computer-executable instructions stored thereon that, when executed by a processor, cause the processor to perform operations further comprising:

in response to a determination that the candidate placement plan places all components of the application, outputting the candidate placement plan as the optimal placement.

18. The computer storage medium of claim 15 , wherein the computer-executable instructions stored thereon that, when executed by a processor, cause the processor to perform operations further comprising:

in response to a determination that the running time has expired, outputting the base optimal placement plan as the optimal placement.

19. The computer storage medium of claim 14 , wherein the computer-executable instructions stored thereon that, when executed by a processor, cause the processor to perform operations further comprising:

if a determination is made that half of the running time has not expired,

determining, from the pool of candidate placement plans, a candidate placement plan that has a best utilization value; and

attempting placement of the application in accordance with the candidate placement plan.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 11, 2015
From: JUNG, GUEYOUNG; HILTUNEN, MATTI A.; JOSHI, KAUSTUBH; SCHLICHTING, RICHARD D.
To: AT&T INTELLECTUAL PROPERTY I, L.P.
Reel/Frame 036540/0546 →
Cited By (1)
US 12,407,735