1. A method for placing components of a plurality of instances of a cloud application on nodes in a cloud infrastructure, the method comprising: receiving by a cloud controller scenario probabilities of a plurality of cloud application scenarios, wherein the plurality of cloud application scenarios define which of a plurality of application components to use and an order of operation for the plurality of application components; receiving by a cloud controller cloud infrastructure performance data; defining a performance metric of the cloud application based upon cloud infrastructure performance data; defining constraints on the placement of the plurality of application components; receiving a service level agreement performance requirement based upon a probability of meeting a specified performance requirement; optimizing the placement of the plurality of application components of the plurality of instances of the cloud application on nodes in the cloud infrastructure based upon the scenario probabilities, cloud infrastructure performance data, the performance metric, and the constraints on the placement of the plurality of application components to meet the service level agreement performance requirement.