IP Library Granted Patent US 10,033,833
Granted Patent B2
US 10,033,833 · App. 14/993,018 · Granted Jul 24, 2018

Apparatus, systems and methods for automatic distributed application deployment in heterogeneous environments

Inventors: Tianying Fu (San Jose, CA); Saad Ali Malik (Milpitas, CA); Gautam Joshi (San Jose, CA)
Assignee: CISCO TECHNOLOGY, INC.
H04L67/34G06F8/60G06F9/455G06F9/45558H04L41/08
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,033,833
App. No.
14/993,018
Granted
Jul 24, 2018
Kind
B2
Abstract

Embodiments disclosed facilitate distributed orchestration and deployment of a cloud based distributed computing application. In some embodiments, a first deployment context associated with a cloud based application may be determined. The first deployment context may comprise a plurality of rules, where each rule may specify conditions for applying configurations to resources associated with the cloud based application. The conditions specified by the plurality of rules may be evaluated and configurations of the resources associated with the cloud based application may be determined. In some embodiments, the deployment of the cloud based application on a first cloud may then be orchestrated based, in part, on the first deployment context, by configuring the resources associated with the cloud based application based on the previously determined configurations of the resources.

Claims (68)

1. A method comprising:

at a server including one or more processors and a non-transitory memory:

determining a first deployment context associated with a cloud based application, the first deployment context comprising a plurality of rules, wherein each rule in the plurality of rules specifies at least one corresponding condition, wherein the plurality of rules determine configurations to be applied to one or more resources associated with the cloud based application;

evaluating conditions specified by the plurality of rules associated with the first deployment context, wherein evaluating the conditions includes evaluating environmental parameters of a plurality of clouds at a deployment time of the cloud based application;

determining, based on the evaluation of the conditions, configurations of the one or more resources, wherein determining the configurations of the one or more resources includes determining a first cloud for deployment of the cloud based application based, at least in part, on parameters of the first cloud satisfying the conditions at the deployment time of the cloud based application; and

orchestrating deployment of the cloud based application on the first cloud based, in part, on the first deployment context, by configuring each of the one or more resources associated with the cloud based application based on the determined configurations of the one or more resources.

2. The processor-implemented method of claim 1 , wherein determining the first deployment context comprises:

determining the first deployment context dynamically based, in part, on information received from one or more cloud agents running on one or more clouds, the one or more clouds comprising the first cloud.

3. The processor-implemented method of claim 1 , wherein evaluating the conditions specified by the plurality of rules associated with the first deployment context comprises at least one of:

evaluating a first subset of the conditions based, in part, on information received from one or more cloud agents running on one or more cloud infrastructures; or

evaluating a second subset of the conditions using cloud plugins for the one or more cloud infrastructures.

4. The processor-implemented method of claim 1 , further comprising:

orchestrating the deployment of the cloud based application on a second cloud based, in part, on a second deployment context by configuring each of the one or more resources associated with the cloud based application based on the second deployment context, wherein the second deployment context is different from the first deployment context.

5. The processor-implemented method of claim 4 , wherein the orchestration of the first deployment context and the second deployment context are performed concurrently.

6. The processor-implemented method of claim 4 , wherein:

the first cloud and the second cloud form a heterogeneous cloud computing environment, wherein the first cloud is of a first cloud type and the second cloud is of a second cloud type, different from the first cloud type, and

orchestrating of the deployment of the cloud based application on the first cloud and orchestrating of the deployment of the cloud based application on the second cloud are both based on a cloud agnostic representation of the cloud based application.

7. The processor-implemented method of claim 1 , wherein the method is performed autonomously and without user-intervention.

8. The processor-implemented method of claim 1 , further comprising:

deploying the cloud based application on the first cloud.

9. The processor-implemented method of claim 1 , wherein the first deployment context is autonomously determined based on one or more of:

a user group associated with a user invoking the cloud based application; or

a geographical location associated with a user invoking the cloud based application.

10. The method of claim 1 , wherein the first deployment context is specified by associating at least two deployment contexts from different hierarchical levels of application level deployment contexts.

11. An apparatus comprising:

a memory, and

at least one processor coupled to the memory, wherein the processor is configured to:

determine a first deployment context associated with a cloud based application, the first deployment context comprising a plurality of rules, wherein each rule in the plurality of rules specifies at least one corresponding condition, wherein the plurality of rules determine configurations to be applied to one or more resources associated with the cloud based application;

evaluate conditions specified by the plurality of rules associated with the first deployment context, wherein evaluating the conditions includes evaluating environmental parameters of a plurality of clouds at a deployment time of the cloud based application;

determine, based on the evaluation of the conditions, configurations of the one or more resources, wherein determining the configurations of the one or more resources includes determining a first cloud for deployment of the cloud based application based, at least in part, on parameters of the first cloud satisfying the conditions at the deployment time of the cloud based application; and

orchestrate deployment of the cloud based application on a first cloud based, in part, on the first deployment context, by configuring each of the one or more resources associated with the cloud based application based on the determined configurations of the one or more resources.

12. The apparatus of claim 11 , wherein to determine the first deployment context, the at least one processor is configured to:

determine the first deployment context dynamically based, in part, on information received from one or more cloud agents running on one or more clouds, the one or more clouds comprising the first cloud.

13. The apparatus of claim 11 , wherein to evaluate the conditions specified by the plurality of rules associated with the first deployment context, the at least one processor is configured to perform at least one of:

evaluate a first subset of the conditions based, in part, on information received from one or more cloud agents running on one or more cloud infrastructures; or

evaluate a second subset of the conditions using cloud plugins for the one or more cloud infrastructures.

14. The apparatus of claim 11 , wherein the at least one processor is further configured to:

orchestrate the deployment of the cloud based application on a second cloud based, in part, on a second deployment context by configuring each of the one or more resources associated with the cloud based application based on the second deployment context, wherein the second deployment context is different from the first deployment context.

15. The apparatus of claim 14 , wherein the at least one processor is configured to:

orchestrate the first deployment context and orchestrate the second deployment context concurrently.

16. The apparatus of claim 14 , wherein the first cloud and the second cloud form a heterogeneous cloud computing environment, wherein the first cloud is of a first cloud type and the second cloud is of a second cloud type, different from the first cloud type, and wherein the at least one processor is configured to

orchestrate of the deployment of the cloud based application on the first cloud and orchestrate of the deployment of the cloud based application on the second cloud based on a cloud agnostic representation of the cloud based application.

17. The apparatus of claim 11 , wherein the processor is further configured to:

deploy the cloud based application on the first cloud.

18. The apparatus of claim 11 , wherein the processor is configured to autonomous determine the first deployment context based on one or more of:

a user group associated with a user invoking the cloud based application; or

a geographical location associated with a user invoking the cloud based application.

19. The apparatus of claim 11 , wherein the first deployment context is specified by associating at least two deployment contexts from different hierarchical levels of application level deployment contexts.

20. A non-transitory computer-readable medium comprising instructions, which when executed by a processor, perform a method comprising:

determining a first deployment context associated with a cloud based application, the first deployment context comprising a plurality of rules, wherein each rule in the plurality of rules specifies at least one corresponding condition, wherein the plurality of rules determine configurations to be applied to one or more resources associated with the cloud based application;

evaluating conditions specified by the plurality of rules associated with the first deployment context, wherein evaluating the conditions includes evaluating environmental parameters of a plurality of clouds at a deployment time of the cloud based application;

determining, based on the evaluation of the conditions, configurations of the one or more resources, wherein determining the configurations of the one or more resources includes determining a first cloud for deployment of the cloud based application based, at least in part, on parameters of the first cloud satisfying the conditions at the deployment time of the cloud based application; and

orchestrating deployment of the cloud based application on a first cloud based, in part, on the first deployment context, by configuring each of the one or more resources associated with the cloud based application based on the determined configurations of the one or more resources.

21. The computer-readable medium of claim 20 , wherein determining the first deployment context comprises:

determining the first deployment context dynamically based, in part, on information received from one or more cloud agents running on one or more clouds, the one or more clouds comprising the first cloud.

22. The computer-readable medium of claim 20 , wherein evaluating the conditions specified by the plurality of rules associated with the first deployment context comprises at least one of:

evaluating a first subset of the conditions based, in part, on information received from one or more cloud agents running on one or more cloud infrastructures; or

evaluating a second subset of the conditions using cloud plugins for the one or more cloud infrastructures.

23. The computer-readable medium of claim 20 , further comprising:

orchestrating the deployment of the cloud based application on a second cloud based, in part, on a second deployment context by configuring each of the one or more resources associated with the cloud based application based on the second deployment context, wherein the second deployment context is different from the first deployment context.

24. The computer-readable medium of claim 23 , wherein the orchestration of the first deployment context and the second deployment context are performed concurrently.

25. The computer-readable medium of claim 23 , wherein:

the first cloud and the second cloud form a heterogeneous cloud computing environment, wherein the first cloud is of a first cloud type and the second cloud is of a second cloud type, different from the first cloud type, and

orchestrating of the deployment of the cloud based application on the first cloud and orchestrating of the deployment of the cloud based application on the second cloud are both based on a cloud agnostic representation of the cloud based application.

26. The computer-readable medium of claim 20 , wherein the first deployment context is autonomously determined based on one or more of:

a user group associated with a user invoking the cloud based application; or

a geographical location associated with a user invoking the cloud based application.

27. The computer-readable medium of claim 20 , wherein the first deployment context is specified by associating at least two deployment contexts from different hierarchical levels of application level deployment contexts.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 16, 2017
From: CLIQR TECHNOLOGIES LLC
To: CISCO TECHNOLOGY, INC.
Reel/Frame 043310/0258 →
CHANGE OF NAME Recorded Aug 16, 2017
From: CLIQR TECHNOLOGIES, INC.
To: CLIQR TECHNOLOGIES LLC
Reel/Frame 043576/0311 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2016
From: FU, TIANYING; MALIK, SAAD ALI; JOSHI, GAUTAM
To: CLIQR TECHNOLOGIES
Reel/Frame 037482/0885 →
Continuity (1)
Related Publication 20170201569A1 · Jul 13, 2017
Cited By (11)
US 12,306,819 US 12,360,828 US 12,373,220 US 12,461,791 US 12,481,638 US 12,613,857 US 12,625,691 US 12,657,097 US 12,693,888 US 12,693,999 US 12,699,685