1. A non-transitory machine-readable storage medium storing instructions which, when executed by at least one processor of a machine, cause the machine to perform operations comprising: automatically reserving resources by identifying specific resources using a customized topology that is generated from a generic specification for an application; receiving an indication to deploy the application; initiating a deployment process in response to the receiving of the indication, the deployment process to deploy the application on the reserved resources, the initiating the deployment process including generating a graph comprising a plurality of nodes that represents the reserved resources; traversing the graph to determine an order in which to deploy the application on the reserved resources; and executing the order.