1. A computer-implemented method for dynamically managing a distributed computing environment by changing the state of one or more servers which serve as target nodes in response to service requests from one or more client computer systems which access the distributed computer environment for services, the computer-implemented method comprising: receiving within a distributed computing environment a request for services from a client computer system; in response to the request for services, instantiating a state driver that determines a target node's current state, which comprises at least one of an operating system, one or more applications, or configuration setting at the target node; and a goal state builder that determines a new desired state that will be required to meet the request for services, which comprises altering at least one or more of the current state's operating system, one or more applications, or configuration setting; the state driver then comparing the current state and the new desired state and generating required actions for changing the current state in order to move to the new desired state at the target node, with the required actions being represented as a dependency graph which defines a sequence for carrying out the required actions; based on the sequence of actions represented in the dependency graph, the state driver causing each required action to be carried out until the new desired state is achieved at the target node; and using the new desired state at the target node to respond to the request for services received from the client computing system.