1. A method, comprising: identifying a set of attributes of an application specified in a request to deploy the application in a cloud computing environment, wherein the set of attributes of the application comprise: (i) a target operating system the application is compiled to execute in, (ii) a level of support for each of a plurality of versions of the application, and (iii) a restriction against using at least one of the plurality of versions of the application in the cloud computing environment; identifying historical data reflecting a plurality of past deployments of the application in the cloud computing environment; determining a set of dependencies for the application; selecting a first virtual machine format, of a plurality of virtual machine formats, based on the set of attributes, the historical data, and the set of dependencies; and deploying the application in a first virtual machine of the first virtual machine format executing the target operating system on a host in the cloud computing environment.