1. A distributed system, comprising: a plurality of infrastructure localities comprising respective server racks implementing one or more servers that host computing resources for the distributed system; a data store, configured to maintain metadata for the infrastructure localities; at least one compute node comprising a processor and a memory, that implement a deployment engine for the distributed system, wherein the deployment engine is configured to: receive, via an interface for the deployment engine, a request to deploy one or more additional server racks comprising one or more additional servers in the distributed system; access the metadata in the data store to evaluate possible deployments for the additional server racks with respect to the server racks in the infrastructure localities of the distributed system according to one or more resource hosting constraints for the distributed system; identify different ones of the possible deployments for the additional server racks that optimize capacity for hosting the computing resources within the one or more resource hosting constraints for the distributed system; and direct the deployment of the additional server racks at respective infrastructure localities of the identified possible deployments in the distributed system.