Loest Virtualisierung wirklich irgendein echtes Problem ?

Ingo Wiedermann geht in seinem Blog auf die TCO-Problematiken von Virtualisierung ein: Virtualisierung die Lösung aller IT Probleme oder nur ein weiteres Problem mehr. Das Problem ist sogar ein wenig schlimmer, als es Ingo beschreibt. Deswegen habe ich auch den etwas ketzerischen Titel gewaehlt. Ich verwende in meinem Vortrag über Standardisierung und Virtualisierung folgende Folie:

Und da beginnt eines Problem. VMware kann man meiner Erfahrung nicht einsetzen, wenn die Umgebung viel I/O-Anforderungen erzeugt. Solaris Container kann ich nicht benutzen, um andere Betriebsysteme zu virtualisieren. XEN kann nicht wirklich für Windows benutzt werden. Das bedeutet, das ich mindestens zwei, meist sogar mehr Virtualisierungsloesungen habe. Alleine für die Rechnervirtualisierung. Dazu kommt dann noch eine gescheite Storagevirtualisierungsloesung. Das heisst meine Admins muessen mit mehreren Ausprägungen eines zusätzlichen Komplexitätslayers fertig werden. Damit ist das Problem aber noch nicht am Ende. Denn bisher ist kaum etwas gewonnen. Hardware ist heutzutage ziemlich preisguenstig. Virtualisierung loest eigentlich ein Problem, das es so in dieser Form nicht gibt. Das eigentlich Problem ist Provisionierung. Die meisten Systeme sind heute handgedengelt und wenn automatisch provisoniert wird, ist die Sichtweise meist eine systemzentrische. Das System wird einfach geklont. Von dort aus passt man sich das System an. Meist wird aber von Grund auf neu gebaut. Davon ausgehend baut man sich dann wieder die Fähigkeit dieses System schnell wieder herzstellen zu können. Das führt zum Problem: 70 Systeme und alle sehen anders aus. Oder auch 70 VMs und alle sehen anders aus. Will man sich wirklich den Betrieb vereinfachen muss man auf eine servicezentrische Sichtweise umschwenken. Sich nicht mehr die Frage stellen: “Ich will eine Solaris-Maschine mit einem Apache aufsetzen”, sondern einfach nur “Ich brauch einen Webserver für http://www.mabushi.de”, ob nun virtuell oder auf einer echten Maschine ist ja erstmal egal. Und dann muss automatisch das Ganze aufgebaut werden. Das wäre wirkliche Vereinfachung. Und es gibt noch einen zweiten Grund, warum man diese Vereinfachung anstreben sollte.Einer der Entwickler des Jumpstart Enterprise Toolkits schrieb mal:

“The most reliable way to build servers is to remove the natural variances introduced by individuals. So automate!”

Die Varianz bedeutet, das jedes dieser System individuell ist. Eigene Fehlerursachen hat. Eigene Probleme hat. Die nur schwer zu finden sind. Virtualisierung führt dann nur dazu das ich es statt mit 80 individuellen Systemen mit 80 individuellen Systemen die auf einer Hardware laufen zu tun habe. Administrative Einsparung? Ist vernachlässigbar. Automatisierte hilft mir dabei, diese 80 individuellen Systeme in einer Art und Weise zu bauen, die mir die Arbeit vereinfacht. Zum einen Teil dadurch, das ich die Vorgänge, die mich zu einem Webserver führen, einfach von einer Maschine ausführen lassen kann. Zum anderen aber auch, weil ich dazu gezwungen werde, Anforderungen an einen Service zu formalisieren. Ihn in Komponenten zu zerlegen. Diese Komponenten zu definieren. Vielleicht bestehende Komponenten für andere Dienste wiederzuverwenden. Aber nur einmal. Danach kann ich diesen Dienst unendlich oft replizieren. Was mir dann sehr interessante Möglichkeiten eröffnet. Vielleicht dazu mal folgendes Beispiel: Tools wie VMware vmotion oder XEN Live Migration erlauben es mir nur, einen virtuellen Server in seiner gesamten Schoenheit zu migrieren. Automatisierte Provisionierung kann wesentlich mehr: Durch geschickte Implementierung der Komponenten im Betrieb eine einzelne Instanz eines Dienstes (beispielsweise ein virtueller Webserver) auf einen anderen Server migrieren. Um beim Beispiel des Weserver zu bleiben: Den virtuellen Webserver auf der neuen Maschine konfigurieren, auf dem Loadbalancer umschalten auf die neue Maschine, auf dem alten Server den virtuellen Webserver entfernen. Und danach sehen die Systeme so aus, als waere es nie anders gewesen. Und wenn ich mir einmal Gedanken mache, wie ein Webserver unter Solaris und unter Windows 2003 aussieht, funktioniert das sogar ueber Betriebsystemsystemgrenzen hinweg. Probiert das mal mit Blechvirtualisierung. Wenn man das Problem geloest hat, kann man dann auch ueber Blechvirtualisierung von dutzenden Systemen nachdenken die ueber das blosse Einsparen von ein wenig Blech hinausgeht. Oder um es auf eine markige Kernthese zu bringen: Nicht der Server muss virtualisiert werden, sondern der Service. Wie ich das Blech darstelle, ist zweitrangig. Oder um die Frage in der Überschrift zu beantworten: Ja, Virtualisierung loest Probleme (z.B. Applikationscontainment in Betriebsystemen, die keine LSPP-Funktionen haben). Oder wenn ich aus irgendeinem Grund mehrere unabhängige Superuser brauche. Aber nicht jene, für die sie momentan marketingmaessig gepusht wird. PS: Ich weiss, das VMware gerne genutzt wird, um viele Windows-Server zusammenzufassen, die bisher vor sich hinidlen. Meine Meinung dazu ist aber, das ein Betriebsystem, das sich zwar Multiuser/Multitaskingfähig schimpft, für das aber immer noch die Best-Practice gilt “Nur ein Service pro System” andere Probleme hat. Und die lassen sich auch nicht durch Virtualisierung loesen.