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; an application manager executable by the processor to receive 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 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 deploy and manage instances of each application component of the first application on the allocated computing resources.