1. A computer-implemented method for providing resources in a distributed computing environment, comprising: receiving a work item from a user; creating a job from the work item; automatically, with a processor and memory, allocating at least a first virtual machine to a first pool; scheduling the job on the first pool; initiating the job on the first pool; reassigning the job to a second pool comprised of at least a second virtual machine; and initiating the job on the second pool.