A method of provisioning in a cloud compute environment having a set of cloud hosts associated with one another. The method begins by forming a distributed, cooperative cache across the set of cloud hosts by declaring a portion of a data store associated with a cloud host as a cache, and storing template images and patches in the cache. Caching activity across the distributed, cooperated cache is coordinated by having the caches share information about their respective contents. A control routine at a cache receives requests for template images or patches, responds to the requests if the requested artifacts are available or, upon a cache miss, forwards the request to another one of the caches. Periodically, the composition of the distributed, cooperative cache is computed, and the template images and patches are populated into the caches using the computed cache composition.