1. A method executed at least in part by a digital data processor, comprising: obtaining information, via a user interface, that is descriptive of user cloud computing related preferences, wherein the user cloud computing related preferences comprises at least a user cloud computing budgetary preference, a location preference, a performance preference, and a reliability level preference, and wherein obtaining the information further comprises obtaining indications on whether each of the user cloud computing related preferences is either required or preferred; sensing properties of a plurality of clouds including at least reliability, cost, security, location, performance and infrastructure properties, wherein the sensed cost and infrastructure properties are obtained directly from a cloud provider via an application program interface of the cloud provider, and wherein the reliability, security, and performance properties are obtained at least in part based on one or more historical records of application deployments in each of the plurality of clouds; making decisions, based at least on the obtained information and on the sensed properties of the plurality of clouds, of when to scale up or scale down a user cloud instance, of selecting one of the plurality of clouds as where to scale the user cloud instance, and determining which resource or resources of the selected cloud to add or remove from the selected cloud; where in response to detecting a presence of a trigger to perform a user cloud instance scale up operation, solving a first optimization problem to select where to scale up the user cloud instance by selecting one of the plurality of clouds to add the user cloud instance to and then solving a second optimization problem to select which resource or resources in the selected cloud to add the user cloud instance to, where the selected resource or resources comprise at least one of memory, communication adapters and operating system, wherein selecting one of the plurality of clouds to add comprises generating a requirement satisfaction vector for each of the user cloud computing related preferences comprising binary values indicating whether each of the plurality of clouds satisfy a given one of the user cloud computing related preferences, and selecting the cloud based on both the requirement satisfaction vectors and the obtained indications on whether each of the user cloud computing related preferences is either required or preferred; and automatically executing the decisions on the selected cloud.