1. A system for managing a plurality of applications in a shared computing environment, each application comprising a plurality of application components, the system comprising a processor and: a) an application manager operable to receive or define a service specification for a first application that defines a set of required computing resources that are necessary to run each application component of the first application; and b) a resource supply manager in communication with the application manager and operable to manage a plurality of computing resources in the shared computing environment; wherein the application manager is operable to request the set of required computing resources from the computing resource supply manager, and wherein the resource supply manager determines the availability of the required computing resources within the shared computing environment according to resource allocation policies and allocates computing resources to the application manager, and wherein the application manager is operable manage allocation of the computing resources to the first application, the application manager operable to create and manage deployment of instances of each application component of the first application on the allocated computing resources; and wherein the service specification defines an acceptable range for the number of instances for at least one of the plurality of application components.