1. A method for automated provisioning of software components in a distributed computing network, the method comprising: receiving a plurality of provisioning-solution artifacts, each provisioning-solution artifact including a software component that realizes a function of an application, wherein the application comprises a plurality of different software components; analyzing the provisioning-solution artifacts to determine a dependency graph representing a resource dependency characterization of the software components of the application; obtaining a mapping of a set of resources and the provisioning-solution artifacts to nodes of a first template, the first template having a plurality of nodes that follow a first predefined network topology for supporting a first deployment of the set of resources; obtaining a second template having a plurality of nodes that follow a second predefined network topology for supporting a second deployment of the set of resources and the provisioning-solution artifacts; obtaining state information for each of the software components; migrating the set of resources represented in the nodes of the first template to the nodes in the second template so as to satisfy a set of component requirements to generate a redeployment map; provisioning the set of resources and the provisioning-solution artifacts on a plurality of computers according to the redeployment map and the resource dependency characterization to implement the software components of the application over the distributed computing network, wherein each of the software components resumes a respective function according to the state information, and wherein the first template and the second template are directed graphs in which the nodes represent functional capabilities of resources and the edges represent communication paths.