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.

closed as too broad by DanBig, Chopper3, Rex, mdpc, Zoredache Jun 23 '14 at 16:35

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 3
    It sounds like you don't have a good understanding of virtualization. Assuming you have the proper licensing, it would be silly to put SQL, Exchange, IIS, TFS on the same server. What happens when TFS needs a restart, mail goes down as well. Freedom to add/extend/remove is useless? That right there is crazy talk. The ability to simply shut down a VM and add memory or disk space and fire it back up with minimal downtime is fantastic. – DanBig Jun 23 '14 at 15:23
  • its even better if you can do something like that without needing to power down (at least xen can do this afaik) BTW: shoping question and/or capacity planing i would think. – Dennis Nolte Jun 23 '14 at 15:27
  • @DanBig of course! That's why I'm posting such question(s) here :) I'm pretty good understanding of windows kernel or asp.net, but these answers are what I'm looking for! :) – Robert Goldwein Jun 23 '14 at 15:30
  • "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?" - Good luck with that, really. – Massimo Jun 23 '14 at 15:56
  • 2
    I understand that virtualization is trendy - Virtualization passed the "trendy" stage years ago. – joeqwerty Jun 23 '14 at 16:00
  1. Sure, you may be able to install all of those apps on a single OS instance and have them live happily together. What happens, though, if you need to scale one of those to larger hardware? What happens if you botch the upgrade of one of those apps and it takes the whole OS down? Virtualization gives you the ability to isolate OSes and applications, as well as the ability to easily move OS instances from one piece of hardware to another.

  2. Virtualization allows a much greater degree of flexibility as far as network goes. If that's not useful to you, then fine, don't use that functionality.

  3. Untrue. Virtualization absolutely does not require centralized storage. If you do want centralized storage, you'll gain many benefits of virtualization (live migration, etc.), but it's not required. I have many ESXi hosts that solely use local RAID10 storage. With a centralized storage system, it's typically architected in such a fashion as to not have any single points of failure (multiple FC paths, multiple controllers, power redundancy, etc.). With these systems, every single piece, including the controllers can fail and/or be taken down for maintenance without causing a single millisecond of downtime.

  4. See above points - virtualization of DCs is fully-supported by the vendor, and you gain a large amount of freedom and flexibility in doing so. Need to swap out a DIMM on a server? OK, just vMotion your VM to another host, perform the maintenance, and vMotion it back. You've managed to replace memory on a physical server without any downtime. Try that without virtualization.

  5. Mistakes happen, hardware dies, software patches go awry, etc. It's very nice to be able to take a pre-maintenance snapshot of a VM as a fallback before performing any updates that may break things. Sure, you absolutely should be testing things in a staging environment, but even with that level of rigor, things can still break.

  6. Restoring a snapshot is orders of magnitude faster than doing a bare-metal restore of a physical server. Additionally, the snapshot does not need to be restored to similar hardware. One of virtualization's chief benefits is that it gives you hardware independence.

In conclusion, unless you have some very stringent performance requirements, deploying systems these days without virtualization is bordering on incompetent. Even if you have workloads that require a whole server's worth of resources, it is still beneficial to have a virtualization layer so you can take advantage of all of the above items.

  • 1
    Thank you, I appreciate that, all those point are perfectly valid. – Robert Goldwein Jun 23 '14 at 15:54
  • 2
    I'm not sure if Exchange and SQL will live happily together on a single server, as Exchange would try to eat away SQL's memory allocation.. – pauska Jun 23 '14 at 16:30
  • 1
    Another effect of OS isolation which is often overlooked but IMO quite valuable is that it gives you the freedom to actually delegate away the administration responisbilities for a certain service within your infrastructure without directly affecting the administration of others. – the-wabbit Jun 23 '14 at 19:33
  • @pauska - good point. I've altered my wording there. – EEAA Jun 23 '14 at 19:49
  • @EEAA Getting more into virtualization - I have to agree with you, not using virtualization nowadays would be truly simply incompetent (in most cases). I was designing server infrastructures 10 years ago with WS 2000/2003, since then I was more into kernel development (mostly IFS), computer science and molecular dynamic simulations - and now I see I have too much to catch up here. – Robert Goldwein Jun 28 '14 at 12:27

1) Different software is capable of coexisting in same machine, but also is capable of breaking. Once you need to reinstall, it's not the same to reinstall 1-VM-for-1-function than 1-Server-for-N-services.

2) It's up to you. In our small environment there's always a mixture of testing and production.

3) True. On the other hand you could invest in a better storage device, and a virtual optimized backup system.

4) Not all servers are suitable for virtualization. But you can still consider a N+1 backup strategy (1 physical DC, 1 physical SQL server, etc, and 1 physical server which holds virtual mchine secondary servers for every other).

5) There are zillions of operating systems and applications. Not all allow you to work in a clean way. It is good to have a universal independent way of snapshoting and backing up.

6) So you are already using virtualization (if I understand what Azure is). Again not all servers are easy to backup. Virtual machines are a least common denominator for managing all kind of servers.

  • Virtualization does not require centralized storage. – EEAA Jun 23 '14 at 15:40
  • Also, centralized storage does not have to mean single-point-of-failure, unless you're operating on a budget that is not properly sized for your needs. – mfinni Jun 23 '14 at 17:30

Not the answer you're looking for? Browse other questions tagged or ask your own question.