1. A computer-implemented method for determining whether and how one or more modules of a distributed application may be distributed to one or more machines in a distributed computing environment, the method comprising: storing in a model repository deployment data for each module of the distributed application, the deployment data of each module identifying deployment requirements for the respective module of the distributed application, and deployment data for a plurality of machines in the distributed environment, the deployment data for a given machine identifying at least one characteristic of the machine and at least one characteristic of a runtime for the given machine; a distributed application deployment engine accessing from the model repository deployment data for at least one module of the distributed application, and deployment data for said plurality of machines in the distributed environment, each of said machines representing a potential deployment target for deployment of the at least one module of the distributed application; the distributed application deployment engine thereafter automatically performing a matching operation for the at least one module using the deployment data accessed from the model repository for the at least one module and using the deployment data accessed from the model repository for said potential deployment targets; if the deployment data for the at least one module cannot be matched to a deployment target, returning a message indicating one or more reasons why the deployment data cannot be matched, but if the deployment data for the at least one module is matched to one or more potential deployment targets, then selecting one of the targets and deploying the at least one module to that deployment target; thereafter redeploying the distributed application by performing the following: identifying that a redeployment event has occurred for at least one module of the distributed application; and upon determining that the redeployment event has occurred, performing the following for each of the plurality of modules in the distributed application: the deployment engine accessing from the model repository the deployment data for each of the modules; the deployment engine accessing from the model repository deployment data for a plurality of potential redeployment targets; the deployment engine automatically performing a matching operation for one or more of the modules using the deployment data stored for each of the modules and using the deployment data for the potential redeployment targets to identify whether one or more of the potential redeployment targets match one or more of the modules; and if so, causing the modules which have a match to be redeployed on one of the matched redeployment targets.