1. A method for placing objects on hosts in an online service, comprising: determining when to place an object on a host in the online service, wherein the online service comprises databases, virtual machines (VMs) and physical machines, wherein the physical machines are arranged in farms that perform roles in a network; obtaining placement constraints for the object that comprise hard constraints and soft constraints, wherein failure of a hard constraint eliminates a host from being selected on which to place the object, wherein soft constraints determine which hosts are more suitable than other hosts; applying the hard constraints against hosts within the network that results in a pool of remaining hosts; applying the soft constraints against the pool of remaining hosts that results in a pool of selection hosts; selecting a host on which to place the object from the pool of selection hosts; and deploying the object on the selected host.