To virtualize or not to virtualize …

Seeing everyone becoming crazy about virtualization latest years, especially for some months, my « technician » point of view is completely amazed by the fundamental nonsense everyone puts in this.

Major companies are virtualizing almost all their servers and even smaller companies ask us now to help them virtualize their IT infrastructure.

I must admit, even if I use virtualized machines everyday and have been quite informed in this matter for some years that I still cannot understand the actual buzz about it.

Hey guys, it’s a technology, nothing more, nothing less !

As with any technology, especially a new one, we must provide use cases, pros and cons, and balance the usage we make out of it.

In magazines and some self-called « specialized » IT shows or blogs, everyone seems crazy with virtualization, being the remedy of all IT problems. Remember the green powder from IBM ? It seems to have come true !

More seriously, what virtualization really is ? Only a mean to abstract the hardware part of a computer (especially a server) and run a complete OS on top of it (or many OSes nowadays). It involves very complex and yet insecure mechanisms to achieve this goal and consumes a lot of computing power, even when hardware accelerated, to get everything running « almost fine ».

But, the main reasons I decided to write this article where :

  • a so-called « IT Magazine » (in France we have many that spit completely useless assumptions about what an IT infrastructure should be and deserves us rather that anything else) that was pretending the new trend to be « desktop virtualization », what a nonsense ! (I will explain later) Everything « virtualized » seem to make them sell better, what a mess …
  • seing many companies, even customers, trying to virtualize services on many instances of the same OS (in this case Linux !) on underpowered machines and getting catastrophic results, so low that they had to go back completely on « traditional » hardware powered single OS per machine.

People should think before they do, we always say that, but in this case it does apply very well.

Of course, you get less power by virtualizing many instances of a same OS rather than executing this OS only once ! Usually the performance loss is not negligible even if acceptable. Virtualizing many Linux instances on a Linux host is a complete mess for me. This particular OS has great abilities to isolate (chroot) environments, make safe protections and even live audit the running kernel to enforce policies on processes and filesystems. It’s technically completely useless to run many Linux instances on a Linux host !

But when thinking about it, the main problem with this approach is that we are transferring the complexities of managing correctly, with care, good knowledge and intelligent conception and communication between the developing team and the production team, to products that are much more complex but promise to be really easy to manage…

It appears as if most IT teams have much lowered their expectations for the team members and are trying to compensate with technologies to try hiding the fact that they member don’t exactly understand well what happens for example on a Linux kernel…

Don’t misunderstand me, I am a great fan of virtualization, we use it, on purpose, for tasks or applications that really need it. In fact it’s proven to be very useful to test OS configurations, start and stop (and restart) machines for OS or network tests very quickly, host a different OS for specific purposes, or even virtualize customers’ parts of infrastructure to make a test environment in almost the same conditions.

Hardware has never been cheaper and powerful, 8 to 12 cores processors are emerging at affordable prices on the market now, why not simply buy a computer (server) each time you need a different OS instance ? Even data-centers use now very small servers to be space efficient, but still use a full computer to host OS and services. If you saw news about the « SheevaPlug », you have seen an impressive computer with an exceptional size/power/consumption ratio. Having less hardware won’t even cost you less licenses ! (for those who still use inferior OSes with expensive license fees, even when not needed…)

Virtualizing the desktop part of an IT infrastructure is even funnier. I first thought it was a joke ! In fact it seems we’re coming back to the terminal paradigm. IT managers don’t want to spend time on making useful, adapted and efficient configurations and manage hardware differences, they want everything to be uniform, uniformly accessible … Why don’t you even ask people to be all the same : same sex, same color, and so on ? Terminals have always used the least efficient denominator of network and servers capabilities, because as always, if you still have low end old machines, everyone else should be compatible with them (complete waste of resources…)

Anyway, I know you readers are not going to stop virtualizing everything (why not virtualize the OS on your Phone then ?) but please, please, pay more attention to what really needs virtualization (and brings real and important benefits) and what should continue to work on always cheaper, smaller, and power-efficient hardware.

I didn’t write about the risks, that are obviously much more important with less servers doing more « work » since I didn’t want this article to be even longer, you can easily conclude about what I think of this, especially when a strong demand goes now about being more redundant, more secure, and more fail-safe…  « Don’t put all your eggs in the same basket » says the idiom, even in French !