1. A computer implemented method for performing deployment with a processor, comprising: identifying a model corresponding to a topology, where the model corresponds to an inventory of components in the topology and dependency relationships for the components; using the model to identify dependencies for a deployment, wherein the identified dependencies are based at least in part upon a dependency tree having one or more root nodes and one or more leaf nodes; counting a number of paths from a root node to a leaf node in the dependency tree; based at least in part on the identified dependencies and the number of paths counted, selecting a deployment procedure from a plurality of deployment procedures, wherein if the number of paths counted is two or more paths, at least one of the deployment procedures comprises a deployment to a first node in a first path in a first downtime window and a deployment to a second node in a second path in a second downtime window, wherein the first downtime window ends before the second downtime window starts and at least one path from the root node to the leaf node is available during deployment to the first node and during deployment to the second node; and implementing the selected deployment procedure to perform the deployment in the topology.