Go to any big company's datacenter and you'll be sure to find some virtual machines that are in production. There is some performance penalty for sure, but the added flexibility and reliability covers that neatly. If your VM host seems to be failing, you can live migrate your VMs off that box and take it down for maintenance. That's not an option when running your services on bare metal. On flexibility side, it is very powerful to be able to allocate resources depending on need, not needing to buy specific hardware and hope that it's a good fit for the workload it runs.