A tangible, non-transitory, and computer-readable medium storing instructions, that when executed by one or more processors are configured to cause the one or more processors to:
- receive, at an application manager, a service specification for a first application of a plurality of applications that defines a set of computing resources used to execute the first application, wherein the application manager is implemented using one or more processors and is configured to manage the plurality of applications in a shared computing environment;
- transmit a request, from the application manager to a resource supply manager, for the set of computing resources from the resource supply manager;
- receive, at the application manager and from the resource supply manager, an indication that the set of computing resources is unavailable based on resource allocation policies;
- in response to receiving the indication, transmit a subsequent request, from the application manager to the resource supply manager, for a relaxed set of computing resources that comprises only a portion of the set of the computing resources;
- receive, at the application manager from the resource supply manager, an allocation of the portion of the set of computing resources to the first application;
- and
- deploy and manage a plurality of instances of the first application on the portion of the set of computing resources, wherein the service specification defines an acceptable range for the number of instances of the first application on the allocated computing resources.