1. A computer-implemented method comprising: autonomically determining whether to execute a top-level software application on an application node in a set of application nodes in a distributed computing system based on status data from the application nodes; identifying a set of software applications that constitute a stack of software applications that, when executed, collaborate to provide an operating environment for the top-level software application, wherein the plurality of software resources are identified when it is determined that the software application is to be executed to the application node; and executing instances of each of the software application in the identified stack and the software application on the application node.