I don't understand why so many people are so scared/not interested/afraid of system administration. It's not that hard. Why does it have to be abstracted? Bringing more and more layers makes everything slower, more complex for sure. The only thing is really hard is configuring and managing an email server.
That's why you use a virtual machine.
If you're wondering why to use a scripted provisioning system, it's to have that code under version control and shared between developers.