1. A method comprising: identifying a set of requirements for a workload, wherein the workload comprises one or more applications to run on a set of virtual machines; identifying a plurality of virtual infrastructure elements in a cloud using the set of requirements; identifying one or more cost criteria associated with the set of requirements, the set of requirements being defined by a set of compliance standards; selecting one or more of the plurality of virtual infrastructure elements satisfying the one or more cost criteria, wherein the one or more virtual infrastructure elements comprises at least one of one or more hosts, one or more network devices, or one or more storage devices; and deploying the set of virtual machines for the workload using the one or more virtual infrastructure elements.