A method of deploying cloud services in a cloud computing system having multiple computing facilities interconnected by a computer network, the method comprising: receiving a service request for deploying an application in the cloud computing system, the application including multiple cloud services each manageable by a corresponding service controller in the cloud computing system, at least one service being deployable in more than one of the computing facilities, wherein receiving the service request includes receiving the service request identifying a co-location constraint between two or more of the cloud services; and in response to receiving the service request, querying the service controllers for a list of the computing facilities arranged in order of preference by each of the service controllers for deploying one or more corresponding cloud services associated with the application; selecting a computing facility from the multiple computing facilities based on the preferences of the service controllers reflected in the lists of the computing facilities; and instructing the service controllers to deploy the cloud services associated with the application to the selected computing facility, thereby achieving co-location of dissimilar cloud services in the selected computing facility, wherein selecting the computing facility includes: transmitting a bid request containing data identifying the cloud services to be deployed by the individual service controllers; and receiving, from the individual service controllers, the list of the computing facilities arranged in order of preference based on at least one of an available capacity or a capability of the individual computing facilities and the co-location constraint between two or more of the cloud services. receiving a service request for deploying an application in the cloud computing system, the application including multiple cloud services each manageable by a corresponding service controller in the cloud computing system, at least one service being deployable in more than one of the computing facilities, wherein receiving the service request includes receiving the service request identifying a co-location constraint between two or more of the cloud services; and in response to receiving the service request, querying the service controllers for a list of the computing facilities arranged in order of preference by each of the service controllers for deploying one or more corresponding cloud services associated with the application; selecting a computing facility from the multiple computing facilities based on the preferences of the service controllers reflected in the lists of the computing facilities; and instructing the service controllers to deploy the cloud services associated with the application to the selected computing facility, thereby achieving co-location of dissimilar cloud services in the selected computing facility, querying the service controllers for a list of the computing facilities arranged in order of preference by each of the service controllers for deploying one or more corresponding cloud services associated with the application; selecting a computing facility from the multiple computing facilities based on the preferences of the service controllers reflected in the lists of the computing facilities; and instructing the service controllers to deploy the cloud services associated with the application to the selected computing facility, thereby achieving co-location of dissimilar cloud services in the selected computing facility, wherein selecting the computing facility includes: transmitting a bid request containing data identifying the cloud services to be deployed by the individual service controllers; and receiving, from the individual service controllers, the list of the computing facilities arranged in order of preference based on at least one of an available capacity or a capability of the individual computing facilities and the co-location constraint between two or more of the cloud services. transmitting a bid request containing data identifying the cloud services to be deployed by the individual service controllers; and receiving, from the individual service controllers, the list of the computing facilities arranged in order of preference based on at least one of an available capacity or a capability of the individual computing facilities and the co-location constraint between two or more of the cloud services.