IP Library › Granted Patent US 9,047,133
Granted Patent B2
US 9,047,133 · App. 13/411,364 · Granted Jun 2, 2015

Single, logical, multi-tier application blueprint used for deployment and management of multiple physical applications in a cloud environment

Inventors: David Winterfeldt (San Francisco, CA); Komal Mangtani (Los Altos, CA); Sesh Jalagam (Union City, CA); Vishwas Nagaraja (Sunnyvale, CA)
Assignee: VMware, Inc.
G06F9/5066G06F8/60G06F9/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,047,133
App. No.
13/411,364
Granted
Jun 2, 2015
Kind
B2
Abstract

A deployment system enables a developer to define a logical, multi-tier application blueprint that can be used to create and manage (e.g., redeploy, upgrade, backup, patch) multiple applications in a cloud infrastructure. In the application blueprint, the developer models an overall application architecture, or topology, that includes individual and clustered nodes (e.g., VMs), logical templates, cloud providers, deployment environments, software services, application-specific code, properties, and dependencies between top-tier and second-tier components. The application can be deployed according to the application blueprint, which means any needed VMs are provisioned from the cloud infrastructure, and application components and software services are installed.

Claims (53)

1. A method of deploying an application having multiple application components, the method comprising:

generating a catalog of a plurality of predefined application components configured to provide a software infrastructure for the application and a plurality of predefined virtual computing resources available in a cloud environment;

inserting a plurality of logical templates into the catalog, wherein each of the plurality of logical templates is associated with at least one of the plurality of predefined virtual computing resources available to be provisioned in the cloud environment;

generating mappings between the plurality of logical templates in the catalog and the plurality of predefined virtual computing resources available in the cloud environment;

generating a topology of virtual computing resources and application components selected from the catalog according to the plurality of logical templates for supporting execution of the application in response to items assembled from the catalog via a canvas-based graphical user interface (GUI);

inserting, in response to user interactions with the topology in the graphical user interface, one or more dependencies between the application components in the topology; and

deploying the application in the cloud environment by provisioning cloud computing resources and installing the application components in the cloud computing resources according to the topology and the mappings.

2. The method of claim 1 , wherein the step of inserting further comprises:

defining a dependency between a first application component executing on a first virtual computing resource and a second application component executing on a second virtual computing resource.

3. The method of claim 1 , wherein the step of inserting further comprises:

defining a dependency between a first application component executing on a first virtual computing resource and a second application component executing on the first virtual computing resource.

4. The method of claim 1 , wherein the step of generating the topology further comprises:

defining a configuration property of a first application component that references a value of a configuration property of a second application component.

5. The method of claim 1 , further comprising:

prior to generating the topology, generating the catalog of virtual computing resources that includes definitions of the virtual computing resources and mapping each of the definitions to a definition of a virtual machine that may be provisioned in the cloud environment.

6. The method of claim 1 , further comprising:

prior to generating the topology, generating the catalog of application components that includes definitions of the application components, each of the definitions referencing installation scripts for deploying the application components and one or more configuration properties.

7. The method of claim 1 , further comprising:

prior to generating the topology, generating the catalog comprising a plurality of deployment environments that includes definitions of virtual machines that may be provisioned in the deployment environments.

8. The method of method of claim 1 , wherein the step of deploying comprises:

in response to user input, selecting one of a plurality of deployment environments;

determining cloud computing resources of the selected deployment environment that are mapped to the topology of virtual computing resources; and

provisioning the cloud computing resources and deploying the application components on the provisioned cloud computing resources according to dependencies defined in the topology.

9. A non-transitory computer-readable storage medium comprising instructions that, when executed in a computing device, deploy an application having multiple application components, by performing the steps of:

generating a catalog of a plurality of predefined application components configured to provide a software infrastructure for the application and a plurality of predefined virtual computing resources available in a cloud environment;

inserting a plurality of logical templates into the catalog, wherein each of the plurality of logical templates is associated with at least one of the plurality of predefined virtual computing resources available to be provisioned in the cloud environment;

generating mappings between the plurality of logical templates in the catalog and the plurality of predefined virtual computing resources available in the cloud environment;

generating a topology of virtual computing resources and application components selected from the catalog according to the plurality of logical templates for supporting execution of the application in response to items assembled from the catalog via a canvas-based graphical user interface (GUI);

inserting, in response to user interactions with the topology in the graphical user interface, one or more dependencies between the application components in the topology; and

deploying the application in the cloud environment by provisioning cloud computing resources and installing the application components in the cloud computing resources according to the topology and the mappings.

10. The non-transitory computer-readable storage medium of claim 9 , wherein the instructions for inserting further comprise instructions for:

defining a dependency between a first application component executing on a first virtual computing resource and a second application component executing on a second virtual computing resource.

11. The non-transitory computer-readable storage medium of claim 9 , wherein the instructions for inserting further comprise instructions for:

defining a dependency between a first application component executing on a first virtual computing resource and a second application component executing on the first virtual computing resource.

12. The non-transitory computer-readable storage medium of claim 9 , wherein the instructions for generating the topology further comprise instructions for:

defining a configuration property of a first application component that references a value of a configuration property of a second application component.

13. The non-transitory computer-readable storage medium of claim 9 , further comprising instructions that, when executed in the computing device, perform the steps of:

prior to generating the topology, generating the catalog of virtual computing resources that includes definitions of the virtual computing resources and mapping each of the definitions to a definition of a virtual machine that may be provisioned in the cloud environment.

14. The non-transitory computer-readable storage medium of claim 9 , further comprising instructions that, when executed in the computing device, perform the steps of:

prior to generating the topology, generating the catalog of application components that includes definitions of the application components, each of the definitions referencing installation scripts for deploying the application components and one or more configuration properties.

15. The non-transitory computer-readable storage medium of claim 9 , further comprising instructions that, when executed in the computing device, perform the steps of:

prior to generating the topology, generating the catalog comprising a plurality of deployment environments that includes definitions of virtual machines that may be provisioned in the deployment environments.

16. The non-transitory computer-readable storage medium of claim 9 , wherein the instructions for deploying further comprise instructions for:

in response to user input, selecting one of a plurality of deployment environments;

determining cloud computing resources of the selected deployment environment that are mapped to the topology of virtual computing resources; and

provisioning the cloud computing resources and deploying the application components on the provisioned cloud computing resources according to dependencies defined in the topology.

17. A computer system for deploying an application having multiple application components, the computer system comprising a system memory and a processor programmed to carry out the steps of:

generating a catalog of a plurality of predefined application components configured to provide a software infrastructure for the application and a plurality of predefined virtual computing resources available in a cloud environment;

inserting a plurality of logical templates into the catalog, wherein each of the plurality of logical templates is associated with at least one of the plurality of predefined virtual computing resources available to be provisioned in the cloud environment;

generating mappings between the plurality of logical templates in the catalog and the plurality of predefined virtual computing resources available in the cloud environment;

generating a topology of virtual computing resources and application components selected from the catalog according to the plurality of logical templates for supporting execution of the application in response to items assembled from the catalog via a canvas-based graphical user interface (GUI);

inserting, in response to user interactions with the topology in the graphical user interface, one or more dependencies between the application components in the topology; and

deploying the application in the cloud environment by provisioning cloud computing resources and installing the application components in the cloud computing resources according to the topology and the mappings.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 6, 2012
From: WINTERFELDT, DAVID; MANGTANI, KOMAL; JALAGAM, SESH; NAGARAJA, VISHWAS
To: VMWARE, INC.
Reel/Frame 028006/0908 →
Continuity (1)
Related Publication 20130232480A1 · Sep 5, 2013