I'm aware of many questions here discussing similar topic, but in this case, I'll try to be much more specific. One target scenario is small to mid-size ISV, the second scenario is an enterprise infrastructure. Following thoughts applies for both cases.
We are Microsoft oriented. I'd need to decide which way to go (and when), and I'd need some solid (ideally general) arguments for or against virtualization - I understand that virtualization is trendy, but I'd appreciate your help here, since what I've read so far, cons and pros all over the web are quite balanced and I'd like to have some solid arguments why to choose virtualization on not - based on following examples.
1) I understand that virtualization is good for utilizing HW resources - if each dedicated server runs on one server application and its resources are not utilized, if these servers are virtualized, resource utilization is not the case. But what if I don't install SQL, Exchange, IIS and TFS on separate servers, but all on one, since all these applications are perfectly capable of living together? On the other hand, if e.g. Exchange server is so utilized that is consumes most of the server capacity, why to virtualize it? It's worth mentioning that we don't expect any dramatic changes in number of workload.
2) I also understand that virtualization gives me freedom to add/extend/remove servers to the network - but in reality, I think this is actually useless. For experiments, we use VMs on Azure, where we can perform testing and do our experiments - but I once we have well-defined server infrastructure, we'd need to change it, maybe adding specialized server.
3) Another thing is that virtualization requires centralized storage - if that fails, everything fails. If I have e.g. three separate servers, each running on own RAID, I'd personally feel somewhat more comfortable.
4) In case of highly critical systems like DC or file server, I don't see any benefit in virtualization.
5) I also understand that if someone really messes up with some server, e.g. Exchange or SQL, it's easy to restore server image - but again, this is usually done with staging environment.
6) Good thing on virtualization is cloning and better disaster recovery - but on the other hand, if we use regular backups of configuration and data to Azure, I don't see any real benefit here.
Disclaimer - I'm not a virtualization skeptic, I just appreciate some solid arguments or hints for such important decisions and I'd prefer to get some insight here from far more experienced people.