IP Library › Granted Patent US 10,095,496
Granted Patent B2
US 10,095,496 · App. 15/495,687 · Granted Oct 9, 2018

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

Inventors: David Winterfeldt (San Francisco, CA); Komal Mangtani (Los Altos, CA); Sesh Jalagam (Union City, CA); Vishwas Nagaraja (Sunnyvale, CA)
Assignee: VMware, Inc.
G06F8/60G06F9/5072G06F9/5077
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,095,496
App. No.
15/495,687
Filed
Apr 24, 2017
Granted
Oct 9, 2018
Kind
B2
Art Unit
2191
USPC
717/177
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 (52)

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

receiving a selected cloud environment on which to deploy the application;

determining one or more logical templates to use in a blueprint for the application, the one or more logical templates specifying virtual computing resources for the application and the blueprint specifying a logical topology of the application;

determining tasks to be executed for deploying the application components of the application;

determining one or more dependencies between the application components;

determining an order of the application components to be deployed based on the one or more dependencies;

generating a deployment plan for executing the tasks to deploy the application in the selected cloud environment based on the determined order and the one or more logical templates; and

provisioning the virtual computing resources and deploying the application components on the provisioned virtual computing resources based on the deployment plan.

2. The method of claim 1 , wherein the one or more dependencies are 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 generating the deployment plan further comprises retrieving cloud templates mapped to the logical templates for the selected cloud environment.

4. The method of claim 1 , further comprising:

accessing a catalog of virtual computing resources that includes definitions of the virtual computing resources and mapping each of the definitions of the virtual computing resources to a definition of a virtual machine that is available to be provisioned in the selected cloud environment.

5. The method of claim 4 , wherein the catalog includes definitions of the application components, each of the definitions of the application components referencing installation scripts for deploying the application components and one or more configuration properties.

6. The method of claim 4 , wherein the catalog comprises deployment environments that include definitions of virtual machines that are available to be provisioned in the deployment environments.

7. The method of claim 1 , further comprising:

responsive to user input, assembling items from 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 the selected cloud environment.

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

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

wherein provisioning the virtual computing resources comprises provisioning the cloud computing resources and deploying 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, perform operations comprising:

receiving a selected cloud environment on which to deploy an application;

determining one or more logical templates to use in a blueprint for the application, the one or more logical templates specifying virtual computing resource for the application and the blueprint specifying a logical topology of the application;

determining tasks to be executed for deploying the application components of the application;

determining one or more dependencies between the application components,

determining an order of the application components to be deployed based on the one or more dependencies;

generating a deployment plan for executing the tasks to deploy the application in the selected cloud environment based on the determined order and the one or more logical templates; and

provisioning the virtual computing resources and deploying the application components on the provisioned virtual computing resources based on the deployment plan.

10. The iron-transitory computer-readable storage medium of claim 9 , wherein the instructions further comprise instructions identifying 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 generating the deployment plan further comprises retrieving cloud templates mapped to the logical templates for the selected cloud environment.

12. The non-transitory computer-readable storage medium of claim 9 , further comprising instructions for accessing a catalog of virtual computing resources that includes definitions of the virtual computing resources and mapping each of the definitions of the virtual computing resources to a definition of a virtual machine that is available to be provisioned in the selected cloud environment.

13. The non-transitory computer-readable storage medium of claim 12 , wherein the catalog of comprises definitions of the application components, each of the definitions of the application components referencing installation scripts for deploying the application components and one or more configuration properties.

14. The non-transitory computer-readable storage medium of claim 9 , further comprising instructions for accessing a catalog of deployment environments that includes definitions of virtual machines that are available to be provisioned in the deployment environments.

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

assembling items from 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 the cloud environment.

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

in response to user input, determining cloud computing resources of the selected cloud environment that are mapped to the topology of virtual computing resources; and

wherein provisioning the virtual computing resources comprises provisioning the cloud according to computing resources and deploying the provisioned cloud computing resources according to dependencies defined in the topology.

17. A computer system for deploying an application having application components, the computer system comprising:

a system memory; and

a processor programmed to:

receive a selected cloud environment on which to deploy the application;

determine one or more logical templates to use in a blueprint for the application, the one or more logical templates specifying virtual computing resources for the application and the blueprint specifying a logical topology of the application;

determine tasks to be executed for deploying the application components of the application;

determine one or more dependencies between the application components;

determine an order of the application components to be deployed based on the one or more dependencies; and

generate a deployment plan for executing the tasks to deploy the application in the selected cloud environment based on the determined order and the one or more logical templates; and

provision the virtual computing resources and deploying the application components on the provisioned virtual computing resources based on the deployment plan.

18. The computer system of claim 17 , wherein the processor is further programmed to:

responsive to user input, assembling items from 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 the selected cloud environment.

19. The computer system of claim 17 , wherein the one or more dependencies are between a first application component executing on a first virtual computing resource and a second application component executing on a second virtual computing resource.

20. The computer system of claim 17 , wherein the processor is further programmed to:

assemble items from 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 the cloud environment.

Assignments (1)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
Continuity (3)
Continuation 14727778 · Jun 1, 2015
Continuation 13411364 · Mar 2, 2012
Related Publication 20170228227A1 · Aug 10, 2017