1. A method comprising: creating a first virtual machine in a first public cloud and one or more second virtual machines in a second public cloud; causing the first virtual machine to create a first plurality of virtual machines in the first public cloud and one or more second virtual machines to create a second plurality of virtual machines in the second public cloud; causing the first plurality of virtual machines to execute first performance evaluation software and the second plurality of virtual machines to execute second performance evaluation software; receiving first performance data generated from execution of the first performance evaluation software and second performance data generated from execution of the second performance evaluation software; and selecting the first public cloud to host an application based at least in part on a comparison between the first performance data and the second performance data, wherein, the first performance data relates to at least one of a compute resource, a storage resource, a network resource, or a service of the first public cloud.