1. A cloud computing system, comprising: a plurality of computing nodes organized into a plurality of clusters, each of the plurality of clusters including a cluster controller; a virtualization layer configured to create a virtual computing environment on each of the plurality of computing nodes; an infrastructure controller configured to operate on each of the plurality of computing nodes and to communicate with the virtualization layer, the infrastructure controller being further configured to receive an authorization to service a launch plan from a user, the launch plan including at least two instances to launch, and the launch plan indicating whether the instances must be launched within separate clusters; a site controller configured to receive instructions from the infrastructure controller in response to the authorization, the site controller being further configured to: request bandwidth information from each of the cluster controllers of the plurality of clusters, compute a score for each of the plurality of clusters that responded to the requested bandwidth information, and assign the launch plan to one or more clusters from the plurality of clusters based on the computed scores and based on whether the launch plan indicates that the instances must be launched within separate clusters.