Virtualization – Why the Hype?

November 9, 2011 by . 3 comments

It’s time for our Question of the Week. This time, Jacob Hayden asked:

Why is there so much hype about Virtualization these days?

Virtual machine, Virtual server, Virtual disk, etc…… It doesn’t make much sense to me why someone would want to make their things “virtual” when basically that adds another layer to everything (which in most cases will make it run more slow). What’s the purpose of Virtualization in the multiple cases above?

While this sounds like a very subjective question, it gained quite some attention. Our long-term user William Hilsum added a great answer, explaining what virtualization even is, and how it became so useful these days.

Of course, virtualization is not the answer to every problem, but with current technologies such as Intel VT-x and AMD-V, the overhead of using an additional layer can be reduced. It is therefore a viable option to using “real” physical systems.

What kinds of virtualization are there? William explains:

Hypervisor – The smallest overhead and usually rock solid, designed for 24×7 virtualisation. (E.g. Microsoft Hyper V, VMware ESXi.

Desktop (software based) Virtualisation – Generally designed for programmers, testers and IT pros – Speed is still very fast/near native on modern machines, but, at the mercy of the guest operating system it runs under, so, whilst I am running 3 VMs 24×7 on my machine for various tasks, it isn’t really “designed” for this – (e.g. Microsoft Virtual PC, VMware Workstation, Sun (Oracle?) Virtual Box). These emulate an entire virtual computer.

Server (software based) Virtualisation – this was quite a large market for a while, but, it was less capable than Hypervisor and is generally a dead market now. Basically it is desktop virtualisation that is just optomised for a server environment – (e.g. Microsoft Virtual Server, VMware Server.

Software Virtualisation – This is a specialised market which is usually for virtualising single programs (e.g. Microsoft App-V, VMware ThinApp). This creates a thin “layer” between your computer and the software – it basically intercepts all calls made by the program in order to redirect file/registry writes and basically sandbox the application. This has a few benefits such as the ability to run multiple versions of some complicated applications and makes deployment quite easy (all though, it can be a difficult area to understand/get in to).

Now, how is virtualization useful? What are its benefits? The most important ones are:

  • cost
  • administration time

If you’re a power user or working for a small company that uses many different “systems”, such as a print server, an SQL server, a Voice-over-IP system, et cetera, you only have two choices without virtualization:

  • Run everything on one machine simultaneously
  • Run everything on multiple boxes

Of course, this leads to problems. What if the operating system you’re running your software on does not support every client application? Maybe the SQL server works better on Linux, but the printers should be shared through Windows.

In the other case, you end up running a lot of machines, which costs energy – especially when the applications only use a minimal share of the performance a machine could offer. This is a very important factor to consider, given the huge amount of memory and processor speed even typical home computers have nowadays.

If you can consolidate everything on one machine, you can split its performance more efficiently. Every virtual machine will get what it needs, not more, not less.

There are some other reasons as well, which sgmoore added in their answer:

  • Testing software on different operating systems
  • Saving disk space using different virtual hard disks
  • Allocating space between virtual machines
  • Snapshots, which enable you to create full backups of a machine’s state. This can also be useful for testing software you don’t want on your main system.

The last factor to consider is the support of legacy software. Do you have a version of a program that only runs on Windows XP? An application that does not support 64-bit operating systems? Just create a minimal virtual machine for it!


Subscribe to comments with RSS.

  • I can’t believe that there is an even quasi-seasoned developer who does not see the benefit of a virtual machine. As someone who has a number of consultants with a good number of different configurations, virtualization is really my only option, especially if I want to protect my main machine from bizarre configurations which might be created by installing custom software. Then there is the IE support issue — IE4Linux is not nearly as good as loading an XP service pack 3 image and then running it directly.

  • Rory Alsop says:

    Thought it would be worth having a link to the Security Stack Exchange blog post on security in virtualised environments:

  • Leave a comment

    Log in
    with Stack Exchange