1. A method for determining an application instance placement in a set of machines under one or more resource constraints, the method comprising the steps of: computing an estimate of a value of a first metric that can be achieved by a current application instance placement and a current application load distribution; and determining a new application instance placement and a new application load distribution that optimizes the first metric.