1. A method comprising: receiving an application descriptor of a composite application, the application descriptor comprising information for a plurality of nodes that comprise application components in the composite application; determining hardware criteria for the plurality of nodes based on the application descriptor; searching, by a processing device, a pool of available hardware resources to identify a plurality of hardware resources associated with an intermediate state that satisfy the determined hardware criteria; allocating the identified plurality of hardware resources associated with the intermediate state for the plurality of nodes; and provisioning the application components on the identified plurality of hardware resources to cause the plurality of hardware resources associated with the intermediate state to have provisioned states that correspond to the information for the plurality of nodes.