I generally deploy as much of a working cluster as is feasible given the state of the codebase in question.  If what I am working on does not require testing on real hardware, I deploy on vms using the smoketest framework, otherwise I deploy on real hardware.