IP Library Granted Patent US 9,967,318
Granted Patent B2
US 9,967,318 · App. 14/474,943 · Granted May 8, 2018

Apparatus, systems, and methods for cloud agnostic multi-tier application modeling and deployment

Inventors: Tianying Fu (San Jose, CA); Gautam Joshi (San Jose, CA); Saad Ali Malik (Milpitas, CA); Abhinav Nagaraj (Sunnyvale, CA)
Assignee: CISCO TECHNOLOGY, INC.
H04L67/10G06F9/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 9,967,318
App. No.
14/474,943
Filed
Sep 2, 2014
Granted
May 8, 2018
Kind
B2
Art Unit
2415
USPC
709/203
Abstract

Embodiments disclosed facilitate obtaining a cloud agnostic representation of a multi-tier application. Cloud specific implementations of the cloud agnostic representation may be deployed on a plurality of clouds. In some embodiments, dependency information for each component service in a multi-tier application is obtained, wherein the dependency information for a component service indicates prerequisites for starting the component service; and a cloud agnostic representation of the multi-tier application is derived, wherein the cloud agnostic representation of the multi-tier application comprises metadata for obtaining each of the component services for a plurality of clouds, and a sequence for starting each of the component services, the sequence based, in part, on the dependency information.

Claims (112)

1. A method comprising:

at a device including a processor and a non-transitory memory:

obtaining, for a multi-tier application comprising a plurality of components, dependency information for each component in the plurality of components, wherein the dependency information for a component in the plurality of components comprises information indicating prerequisites for initiating execution of the component;

deriving a cloud agnostic representation of the multi-tier application based, in part on the dependency information, wherein the cloud agnostic representation of the multi-tier application comprises metadata for the multi-tier application without cloud-specific information;

provisioning a plurality of virtual machines to run the plurality of components of the multi-tier application based on the dependency information;

deriving, from the cloud agnostic representation, cloud-specific commands for deploying the multi-tier application on the plurality of virtual machines; and

deploying the multi-tier application on the plurality of virtual machines using the cloud-specific commands in order to obtain a cloud specific implementation of the cloud agnostic representation of the multi-tier application.

2. The method of claim 1 , wherein the dependency information for each component further comprises residence dependency information and the metadata further comprises:

Virtual Machine (VM) co-residency information for a first subset of the plurality of components when deployed, the VM co-residency information comprising:

information indicating a compatibility of at least one first group of components in the first subset for co-residency; or

information indicating an incompatibility of at least one second group of components in the first subset for co-residency; or

VM placement information for a second subset of the plurality of components when deployed, the VM placement information comprising a mapping of each component in the second subset to one or more VMs.

3. The method of claim 1 , wherein each of the plurality of components are selected from at least one of:

a service library, the service library comprising a plurality of services, wherein each of the plurality of services is associated with a corresponding service configuration metadata; or

an application catalog, the application catalog comprising a plurality of predefined multi-tier applications, wherein each of the plurality of predefined multi-tier applications is associated with a corresponding application metadata.

4. The method of claim 3 , wherein the multi-tier application is obtained by:

displaying a representation of the plurality of services in the service library and a representation of applications in the application catalog in a Graphical User Interface (GUI); and

displaying, based on the dependency information and in response to a selection of each of the plurality of components, a graphical representation of the multi-tier application on the GUI the graphical representation reflecting the selected components and dependencies between the selected components.

5. The method of claim 3 , wherein the plurality of services comprise at least one of:

a web server;

a relational database;

a non-relational database;

a load balancing service;

a front-end cache;

a back-end cache;

a message bus;

an application server;

Virtual Machine Image (VMI) based services; or

external endpoint based services.

6. The method of claim 1 , wherein deploying the multi-tier application on the plurality of virtual machines comprises:

obtaining, based on the metadata in the cloud agnostic representation, the cloud specific implementation of the cloud agnostic representation of the multi-tier application.

7. An apparatus comprising:

a memory comprising dependency information for a component in a plurality of components of a multi-tier application, wherein the dependency information for the component comprises information indicating prerequisites for initiating execution of the component; and

a processor coupled to the memory, wherein the processor is configured to:

obtain, for the multi-tier application, the dependency information for each component in the plurality of components;

derive a cloud agnostic representation of the multi-tier application based, in part, on the dependency information, wherein the cloud agnostic representation of the multi-tier application comprises metadata for the multi-tier application without cloud-specific information;

provision a plurality of virtual machines to run the plurality of components of the multi-tier application based on the dependency information;

derive, from the cloud agnostic representation, cloud-specific commands for deploying the multi-tier application on the plurality of virtual machines; and

deploy the multi-tier application on the plurality of virtual machines using the cloud-specific commands in order to obtain a cloud specific implementation of the cloud agnostic representation of the multi-tier application.

8. The apparatus of claim 7 , wherein the dependency information for each component further comprises residence dependency information and the processor is further configured to:

obtain the metadata based on the residence dependency information, the metadata comprising:

Virtual Machine (VM) co-residency information for a first subset of the plurality of components when deployed, the VM co-residency information comprising:

information indicating a compatibility of at least one first group of components in the first subset for co-residency; or

information indicating an incompatibility of at least one second group of components in the first subset for co-residency; or

VM placement information for a second subset of the plurality of components when deployed, the Vivi placement information comprising a mapping of each component in the second subset to one or more VMs.

9. The apparatus of claim 7 , wherein:

the memory comprises:

a service library, the service library comprising a plurality of services, wherein each of the plurality of services is associated with a corresponding service configuration metadata; or

an application catalog, the application catalog comprising a plurality of predefined multi-tier applications, wherein each of the plurality of pre-defined multi-tier applications is associated with a corresponding application metadata; and

the processor is configured to:

select each of the plurality of components from at least one of the service library or the application catalog.

10. The apparatus of claim 9 , wherein the apparatus further comprises a display coupled to the processor, wherein to obtain the multi-tier application, the processor is further configured to:

display, on the display, a representation of the plurality of services in the service library and a representation of applications in the application catalog in a Graphical User Interface (GUI); and

display, on the display, based on the dependency information and in response to a selection of each of the plurality of components, a graphical representation of the multi-tier application on the GUI, the graphical representation reflecting the selected components and dependencies between the selected components.

11. The apparatus of claim 9 , wherein the plurality of services comprise at least one of:

a web server;

a relational database;

a non-relational database;

a load balancing service;

a front-end cache;

a back-end cache;

a message bus;

an application server;

Virtual Machine Image (VW) based services; or

external endpoint based services.

12. The apparatus of claim 7 , wherein to deploy the multi-tier application on the plurality of virtual machines, the processor is configured to:

obtain, based on the metadata in the cloud agnostic representation, the cloud specific implementation of the cloud agnostic representation of the multi-tier application.

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

obtaining, for a multi-tier application comprising a plurality of components, dependency information for each component in the plurality of components, wherein the dependency information for a component in the plurality of components comprises information indicating prerequisites for initiating execution of the component;

deriving a cloud agnostic representation of the multi-tier application based, in part on the dependency information, wherein the cloud agnostic representation of the multi-tier application comprises metadata for the multi-tier application without cloud-specific information;

provisioning a plurality of virtual machines to run the plurality of components of the multi-tier application based on the dependency information;

deriving, from the cloud agnostic representation, cloud-specific commands for deploying the multi-tier application on the plurality of virtual machines; and

deploying the multi-tier application on the plurality of virtual machines using the cloud-specific commands in order to obtain a cloud specific implementation of the cloud agnostic representation of the multi-tier application.

14. The computer-readable medium of claim 13 , wherein the dependency information for each component further comprises residence dependency information and the metadata further comprises:

Virtual Machine (VM) co-residency information for a first subset of the plurality of components when deployed, the VM co-residency information comprising:

information indicating a compatibility of at least one first group of components in the first subset for co-residency; or

information indicating an incompatibility of at least one second group of components in the first subset for co-residency; or

VM placement information for a second subset of the plurality of components when deployed, the VM: placement information comprising a mapping of each component in the second subset to one or more VMs.

15. The computer-readable medium of claim 13 , wherein each of the plurality of components are selected from at least one of:

a service library, the service library comprising a plurality of services, wherein each of the plurality of services is associated with a corresponding service configuration metadata; or

an application catalog, the application catalog comprising a plurality of predefined multi-tier applications, wherein each of the plurality of predefined multi-tier applications is associated with a corresponding application metadata.

16. The computer-readable medium of claim 15 , wherein the multi-tier application is obtained by:

displaying a representation of the plurality of services in the service library and a representation of applications in the application catalog in a Graphical User Interface (GUI); and

displaying, based on the dependency information and in response to a selection of each of the plurality of components, a graphical representation of the multi-tier application on the GUI, the graphical representation reflecting the selected components and dependencies between the selected components.

17. The method computer-readable medium of claim 15 , wherein the plurality of services comprise at least one of:

a web server;

a relational database;

a non-relational database;

a load balancing service;

a front-end cache;

a back-end cache;

a message bus;

an application server;

Virtual Machine Image (VW) based services; or

external endpoint based services.

18. The computer-readable medium of claim 13 , wherein deploying the multi-tier application on the at least one of the plurality of clouds comprises:

obtaining, based on the metadata in the cloud agnostic representation, the cloud specific implementation of the cloud agnostic representation of the multi-tier application.

19. The method of claim 3 further comprising:

selecting a previously stored application from the application catalog;

modifying the previously stored application to obtain a modified application, including adding or removing one or more services from the service library and adding or removing one or more previously stored applications from the application catalog;

obtaining the dependency information for the modified application; and

saving the modified application in the application catalog as the multi-tier application.

20. The apparatus of claim 9 , wherein the processor is further configured to:

select a previously stored application from the application catalog;

modify the previously stored application to obtain a modified application, including adding or removing one or more services from the service library and adding or removing one or more previously stored applications from the application catalog;

obtain the dependency information for the modified application; and

save the modified application in the application catalog as the multi-tier application.

21. The computer-readable medium of claim 15 further comprising:

selecting a previously stored application from the application catalog;

modifying the previously stored application to obtain a modified application, including adding or removing one or more services from the service library and adding or removing one or more previously stored applications from the application catalog;

obtaining the dependency information for the modified application; and

saving the modified application in the application catalog as the multi-tier application.

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 Sep 2, 2014
From: FU, TIANYING; JOSHI, GAUTAM; MALIK, SAAD ALI; NAGARAJ, ABHINAV
To: CLIQR TECHNOLOGIES, INC.
Reel/Frame 033652/0278 →
Continuity (2)
Continuation In Part 13024302 · Feb 9, 2011
Related Publication 20140372533A1 · Dec 18, 2014