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.