Virtualisation: just a lot of extra software licences?
Counting the cost
A colleague of mine recently remarked that x86 virtualisation makes no sense to any organisation that is cost conscious.
I am an early adopter of virtualisation and wanted to know what he meant.
“When using virtualisation, you are paying for far more software licences than you would if you were to take the time to implement everything on one physical box," he explained.
I beg to differ. Virtualisation’s greatest cost advantage is that it has allowed us to containerise applications without having to buy dedicated hardware.
Putting the reboot in
There are a number of updates that take down adjacent services during install (for example, Exchange and IIS), and others that require the reboot of the entire system. This is less of an issue with open-source systems, but even here it is a factor.
Industry-specific applications are touchy beasts. They have exacting requirements and often are so poorly written that they crash regularly. Sometimes they crash so spectacularly that they take the operating system with them.
This requires a reboot of the underlying server to get the application back up – a problem if several other critical applications happen to live on the same box.
Malware is another threat. I recently had an issue with a Linux server operating as both an application server and a file server. A nasty little bit of malware was uploaded to the system via FTP and a privilege escalation bug in one of the applications was used to mark it executable.
The system was rooted. Had there been any sensitive information available to that system very bad things could have occurred.
Windows is even more vulnerable.
Memory leaks and caching algorithm glitches cause their own problems. A single application with a memory leak can starve everything else on a system. A bad caching algorithm – think early Vista – can thrash the disk and significantly impair performance for everything on the system.
Some applications simply have different requirements. I have an old bit of software that requires the Microsoft JVM, and four other software applications all pinned to specific versions of Sun and Oracle’s JVMs.
They are completely incompatible and require separate execution environments. Patching Java in this scenario is complicated.
Direct application incompatibilities are not the only issue. In my environment, Exchange requires a UC certificate to work properly whereas other applications I run have differing certificate requirements. Some applications won’t run with UAC turned on; others balk at having it turned off and refuse to execute for security reasons.
The total cost of my installed base of server operating systems is about $100,000. If I compressed this into a single master/slave cluster per site with no virtualisation I could cut that cost to just $10,000. On paper, that saves the company $90,000.
Virtual sprawl isn’t all bad
The reality, however, is that it would probably take me the better part of two years to figure out how to do it all. Factor in the cost of downtime, then add tech time required to thoroughly test and re-certify the single-box environment for every single application update.
Suddenly $90,000 seems like a bargain.
x86 virtualisation has given rise to virtual sprawl, but virtual sprawl isn’t all bad. A single application running on a single operating system is far more manageable than the idea that all things must exist on a single box.
Specific licensing schemes related to virtualisation may be atrocious.
Still, most implementations of the technology are only more expensive than the single-box approach if both system downtime and IT staff time have no value. ®