Does virtualization solves any substantial problem?
After seeing several requests from translation systems in my logfiles, i´ve decided to provide my own translation of the article Loest Virtualisation wirklich irgendein echtes Problem: Ingo Wiedermann reports in his blog the difficult side of virtualization: Virtualisierung die Lösung aller IT Probleme oder nur ein weiteres Problem mehr. The problem is even more problematic than Ingo descibes it. Out of this reason i´ve chosed the rather heretical title. In a presensentation about standardization and virtualization i use the following slide:
(translated: there is no handle-them-all solution ... whatever your supplier will tell you)
And there the problem starts. VMware is not usable in environements with a high I/O load. Solaris Container are not capable to virtualize diffrent operatin system. And XEN cannot really virtualize Windows. So you need at least two solutions for virtualization. For the server allone. Besides this you need a decent solution for storage virtualization. This means, that my admins have to cope with several versions of an additional layer of complexity. The problems doesn´t ends here and nothing is won so far . HArdware is cheap today. Virtualization solves a problem, that doesn´t exists in this form. The most system are hand crafted, and when an automated provision in in use, the view is mostly an system centric one. The system will be cloned and modified by hand from there. After this you use automatic provisioning mechanisms to clone this system again as a whole system to enable a fast recovery. This leads to the real system: 70 systems and all look different. Or the problem in a new flavor: 70 virtual machines an all look diffrent. When you really want to simplify administration, you have to use a servicecentric view to the problem. Not “I want a solaris system with an Apache”, instead “I need a webserver for http://www.mabushi.de”, virtual or not. Automatically deployed. This would be an real simplification. There is an second reason to do so: One of the developers of the Jumpstart Enterprise Toolkit coined the phrase:
“The most reliable way to build servers is to remove the natural variances introduced by individuals. So automate!”
This variance leads to the problem that every system is an individual system. Own error root cause. With own problems. That are hard to find. Virtualization only means: Instead of 70 individual systems you have 70 individual systems that runs on one hardware. Administrative savings. Almost not existant. Automatic provisioning helps me to build the systems in a way that really simplify my work. On one side by the automatic provisioning itself. More important it forces me to formalize the requirements to a servers. To divide it in components. To define the components. But only once. Later i reuse one of the components. After this i can replicate the server ad infinitum. This opens vast possibilties. For example the following scenario. Tools like VMware vmotion or XEN live migration only moves the complete system in his whole beauty. Automated provisioning is able to do more. By a well designed implementation of the components you you can move a single instance of a service (for exable the webserver http://www.mabushi.de) on a diffrent server. Configure the virtual server on the new machine. Reconfigure the load balancer and then remove the configuration of the old system. And after this action the systems looks like it was never differently. And when i´m define how a webserver is configured under Windows and Solaris, this is even possible with no operating system boarders. Try this with virtualization of the iron. After solving this problem, you can think about iron virtualization of several systems with more impact to your bottomline as only saving some servers. And to coin a different phrase. No the server has to be virtualized, it´s the service. How you provide the iron is a second priority. Or to answer the question: Yes. Virtualization solves problems. Like application containment in operating system without LSPP functions. Or when you need several independent super users. But not the problems the marketing hype wants you to believe. PS: I know, that VMware is often used to consolidate a vast amount Windows-server that only idles most of the time. My personal opinion is, that an operating system, that calls itself “multiuser/multitasking” but has still the best practice “one service/one system” , has different problems. And this problems are not solved by virtualization.