Virtualisierung - der nächste Schritt

04.08.2008
Von Michael Pietroforte
Während die Virtualisierung von Servern zur gängigen Praxis wird, kündigt sich mit der Applikationsvirtualisierung eine weitere Entwicklung an. Es geht um die Entkopplung von Programmen und Betriebssystem.

Das wesentliche Ziel der Applikationsvirtualisierung besteht darin, Anwendungen von ihrer Umgebung so weit zu isolieren, dass Konflikte mit anderen Programmen oder dem Betriebssystem vermieden werden. Dadurch soll sich das System-Management vereinfachen und die Sicherheit verbessern.

Der Unterschied zur Desktop- und Server-Virtualisierung besteht darin, dass nicht die Hardware virtualisiert wird, sondern der Virtualisierer eine Abstraktionsschicht zwischen einzelnen Anwendungen und das Betriebssystem einzieht. Im Gegensatz zum klassischen Desktop entfällt die Installation von Programmen auf dem Zielrechner. Dabei handelt es sich in der Regel um Applikationen für Endanwender, weshalb diese hauptsächlich auf dem Desktop und, falls die jeweilige Lösung das unterstützt, auch in einer Terminal-Server-Umgebung zum Einsatz kommen.

Unterschiedliche Verfahren

Die Konzepte der verschiedenen Produkte ähneln sich, aber es gibt auch einige signifikante Unterschiede. Bei allen Lösungen läuft die Anwendung in einer vom Betriebssystem abgeschotteten Umgebung. Sie regelt den Zugriff auf externe Objekte und gaukelt der Software Systemressourcen wie die Registrierdatenbank oder das Dateisystem vor. Versucht die Applikation etwa in ein gesperrtes Verzeichnis zu schreiben, wird der Zugriff entweder blockiert oder für die Anwendung transparent in die virtuelle Umgebung umgelenkt. Physisch befindet sich die virtuelle Anwendung in einem Verzeichnis, das sich meist in der Konfiguration einstellen lässt.

Der Grad der Virtualisierung ist bei den verschiedenen Lösungen unterschiedlich. Bei einigen Produkten ist es möglich, das Ausmaß der Isolierung festzulegen. Beispielsweise lässt sich häufig vorgeben, welche Verzeichnisse von der Virtualisierung ausgenommen sind. So kann man etwa das Benutzerverzeichnis für den Schreibzugriff freigeben, damit der Anwender Dateien auf seinem PC zu speichern vermag.

Unterschiede gibt es auch bei der Abschottung aus der Sicht des Betriebssystems. Manchmal sieht man mit Systemwerkzeugen wie dem Task-Manager nur das Virtualisierungsprogramm, erhält aber keine Informationen über die darin virtualisierte Anwendung. Deren Prozesse, Dateien und Registry-Einträge sind dann für das Host-Betriebssystem unsichtbar. Es gibt jedoch auch Lösungen, wo zur Laufzeit alles genau wie bei einer gewöhnlichen Anwendung erscheint. Im Fall von Symantecs "Altiris SVS" werden die virtuellen Applikationen genau wie ihre traditionell installierten Pendants in das Betriebssystem integriert. Der Administrator kann dann unter Umständen mit Betriebssystem-Tools die virtuelle Umgebung, etwa in deren Programmverzeichnis, modifizieren. Wird die Virtualisierungsschicht deaktiviert, verschwinden die darin ablaufende Anwendung und alle von ihr vermeintlich am System vorgenommenen Änderungen.

Die Nachteile der Softwarevirtualisierung

  • Wie jede Virtualisierungstechnik zieht auch die Anwendungsvirtualisierung eine weitere Komplexitätsebene ein. Zwar bewerben alle Anbieter ihre Produkte damit, dass sich durch das geringere Konfliktpotenzial zwischen den Anwendungen der Aufwand für Regressionstests vermindert. Allerdings muss man dafür schon im Vorfeld mehr Zeit für die Erstellung der Pakete einplanen.

  • Schließlich muss sichergestellt werden, dass eine Anwendung auch wirklich ordnungsgemäß in einer Umgebung funktioniert, für die sie eigentlich nicht entwickelt wurde. Einige Applikationen lassen sich nicht ohne weiteres virtualisieren. Dazu gehören vor allem Programme, die eigene Gerätetreiber mitbringen.

  • Auch hier unterscheiden sich die verschiedenen Produkte in Bezug auf ihre Flexibilität. Im Problemfall steht man jedoch meist vor der Frage, ob das Virtualisierungs-Tool oder die Anwendung für einen Fehler verantwortlich ist. Das könnte zu Schwierigkeiten führen, wenn man den Herstellersupport bemühen muss. Mit der zunehmenden Verbreitung von Virtualisierungslösungen werden Softwarehäuser ohnehin stärker auf Kompatibilität mit solchen Umgebungen achten und ihren Support darauf einstellen müssen.

Der Grad und die Art der Virtualisierung entscheiden über die möglichen Einsatzszenarien. Ein Zweck aller Lösungen ist es, auf die fehleranfällige und aufwändige Installation von Anwendungen auf dem Desktop-PC zu verzichten. Da die virtuelle Umgebung schon alles mitbringt, was zur Ausführung der Anwendung notwendig ist, ist ihr Aufruf von einem Netzwerklaufwerk oder auch über das Web möglich. In Zusammenspiel mit einer Client-Management-Lösung vereinfacht sich die Softwareverteilung erheblich, weil die Applikation lediglich auf den Arbeitsplatzrechner kopiert, aber eben nicht installiert werden muss.

Streaming-Unterstützung

Ein Großteil der Lösungen unterstützt darüber hinaus das Streaming von Anwendungen. Dazu gehören unter anderem Citrix' "Xenapp Application Streaming", Endeavors Technologies' "Application Jukebox", Microsofts "App-V" und Symantecs "Altiris SVS Professional". Mit diesen Produkten wird zunächst nur der Anteil der Applikation auf den Desktop geladen, der zum Start notwendig ist. Ruft der Anwender Funktionen auf, deren Programmteile sich noch nicht auf dem Desktop befinden, werden die entsprechenden Programmblöcke nachgeladen und in der Regel im Cache abgelegt. Das beschleunigt den Start der Anwendung beim erneuten Aufruf. Um den Offline-Betrieb zu ermöglichen, ist bei einigen Lösungen auch das Herunterladen der gesamten Anwendung vorgesehen. Unterschiede gibt es bei den unterstützten Protokollen, üblich sind HTTP, HTTPS, SMB und RTSP.

In vielen Fällen erleichtert die Applikationsvirtualisierung auch die Aktualisierung von Anwendungen, denn Updates oder neue Versionen können zentral auf dem Server eingespielt werden. Und soll eine Anwendung komplett aus dem Verkehr gezogen werden, ist es mitunter ausreichend, die virtualisierte Applikation im Backend zu deaktivieren. Teilweise ist dann aber der Cache auf dem Arbeitsplatzrechner zu beseitigen. Nicht jede Lösung bringt die hierfür notwendigen Werkzeuge schon mit.

Vorteile durch Entkopplung

In jedem Fall ist die Entfernung einer virtualisierten Anwendung viel einfacher als bei herkömmlichen Applikationen, da keine oder nur virtuelle Verflechtungen mit dem Betriebssystem bestehen. Daraus resultiert eine Reihe weiterer Vorteile. So ist es zum Beispiel möglich, Anwendungspakete unabhängig von der Windows-Version bereitzustellen. Ältere Programme, die sich unter Windows Vista nicht installieren lassen, können so häufig doch zum Laufen gebracht werden. So erlauben Software-Virtualisierungslösungen unter Umständen überhaupt erst den Umstieg auf Vista.

Auch der Einsatz des 64-Bit-Windows wird erleichtert, denn so lassen sich Anwendungen ausführen, die normalerweise von dieser Variante nicht mehr unterstützt werden. Einige Produkte ermöglichen ferner die Verwendung komplexerer Windows-Applikationen in einer Wine-Umgebung unter Linux oder auf Apple OS X mit Hilfe von Crossover.

Produkte wie beispielsweise VMwares "ThinApp", die Anwendungen komplett voneinander abschotten können, haben darüber hinaus den Vorteil, dass verschiedene Versionen einer Anwendung problemlos auf demselben Desktop koexistieren können. Denkbar wäre etwa, Anwendern Microsofts Office 2003 und 2007 parallel zur Verfügung zu stellen. Verschiedene Versionen einer bestimmten Office-Anwendung lassen sich so sogar gleichzeitig starten.

Sichere Lehmschicht

Applikationsvirtualisierung verbessert auch die Sicherheit. So tut sich Malware erheblich schwerer, die Virtualisierungsschicht zu durchdringen und das Betriebssystem zu infizieren. Wie bereits angedeutet, unterscheiden sich die verschiedenen Lösungen beträchtlich bezüglich der Stringenz und der Art der Isolierung. Je stärker Anwendung und Betriebssystem getrennt sind, desto höher fällt der Sicherheitsgewinn aus.

Bei so manchem Produkt lässt sich die Isolierung so weit treiben, dass eine Anwendung, die normalerweise nur mit Administratorrechten läuft, sogar auf einem Kiosksystem, also auf einem System, das nur minimale Benutzerrechte gewährt, gestartet werden kann. Die Anwendung hinterlässt dabei keinerlei Spuren auf dem System. Man spricht dann vom "Zero Footprint".

Dieses Feature bieten nur die Produkte, die ohne die Installation eines Agenten auf dem Ziel-PC auskommen. Sie erlauben es, die gesamte virtualisierte Umgebung in eine einzige ausführbare Datei zu packen. Diese enthält dann neben der Virtualisierungssoftware alle Dateien der virtualisierten Anwendung inklusive der Registry-Einträge. Der Ziel-PC muss in diesem Fall nicht vorbereitet werden, und dann ist es auch möglich, die ausführbare Datei von einem USB-Stick oder einer CD zu starten.

Hersteller und Produkte

Ceedo: Ceedo Enterprise (www.ceedo.com),

Citrix: XenApp Application Streaming (www.citrix.com),

Endeavors Technologies: Application Jukebox Enterprise Edition (www.endeavors.com),

Installfree: Installfree (www.installfree.com),

Landesk: Application Virtualization (OEM-Version von ThinApp, http://landesk.avocent.com),

Microsoft: Application Virtualization (App-V, ehemals Softgrid, www.microsoft.com/systemcenter/softgrid),

Ringcube: Mojopac Enterprise Suite (www.mojopac.com),

Symantec: Altiris Software Virtualization Solution Professional (www.symantec.com),

Trigence: Trigence AE (www.trigence.com),

VMware: ThinApp (www.vmware.com),

Xenocode: Virtual Application Studio (www.xenocode.com).

Nicht zuletzt erhöht diese strikte Entkopplung von Betriebssystem und Anwendungen die Systemstabilität. Die Registry wird durch neue Programme nicht aufgebläht, und man entgeht der berühmt-berüchtigten DLL-Hölle. Fehlerhaft programmierte Software kann das System kaum lahmlegen, und vom Anwender kaputtkonfigurierte Umgebungen lassen sich ohne großen Aufwand wieder in den Originalzustand zurücksetzen. Und sollte doch einmal das Betriebssystem, zum Beispiel wegen eines Hardwaredefekts, neu aufgespielt werden müssen, stehen die Anwendungen gleich wieder bereit, da sie sich ohne vorherige Installation sofort über das Netz starten lassen.

Der Knackpunkt ist hierbei, dass vom Anwender vorgenommene Konfigurationen dann wieder verfügbar sind. Nach Möglichkeit sollten diese Einstellungen auch auf mehreren Arbeitsplatzrechnern zugänglich sein. Hier verfolgen die einzelnen Lösungen unterschiedliche Ansätze. Eine Möglichkeit besteht darin, Konfigurationsänderungen im Benutzerprofil abzulegen. Die entsprechenden Daten und Registry-Einträge werden dabei vom Rest des Profils mit der jeweiligen Virtualisierungstechnik isoliert. Diese Lösung kommt aber nur in Frage, wenn mit Server-basierenden Benutzerprofilen gearbeitet wird.

Einen Schritt weiter gehen Ansätze, die es erlauben, die Benutzerdaten zusammen mit der virtualisierten Anwendung auf dem Server zu speichern. Änderungen an der virtuellen Umgebung werden in diesem Fall mit einer Server-Komponente synchronisiert. Bei diesem Verfahren ist es dann auch möglich, dass Benutzer selbst Add-ins installieren oder die Applikation aktualisieren, ohne dass Administratorrechte erforderlich wären.

Einige Tools erlauben es dem Systemverwalter, solche Erweiterungen in einem eigenen virtuellen Paket abzulegen. Bei ausgefeilteren Lösungen wie der von Installfree kann man dann zentral festlegen, welche Anwender ein bestimmtes Plug-in angeboten bekommen. Zum Beispiel lässt sich so auf Knopfdruck bei diesen Benutzern der aktuelle Adobe Reader oder die Google Toolbar in den Web-Browser integrieren. Diese Technik eignet sich auch dazu, ein für die Anwendung notwendiges Framework bereitzustellen. Das ermöglicht dann beispielsweise die Verknüpfung einer Java-Applikation mit der passenden Laufzeitumgebung.

Die Erstellung einer virtualisierten Anwendung ist bei allen Produkten mit der Anfertigung von herkömmlichen Installationspaketen vergleichbar. Die Anwendung wird auf einem Master-PC installiert, während der Packager im Hintergrund mitläuft. Dabei gibt es zwei unterschiedliche Methoden. Entweder es wird vor und nach der Installation jeweils ein Snapshot des Gesamtsystems erzeugt und die Differenz für das Paket verwendet, oder der Packager schiebt sich zwischen die Installationsroutine und das Betriebssystem und protokolliert alle Zugriffe mit.

Die letztere Methode gilt als zuverlässiger, da so Unterschiede zwischen Quell- und Zielsystem, etwa wenn es sich um verschiedene Windows-Versionen handelt, eher in den Griff zu bekommen sind. Im Problemfall kann man bei den meisten Produkten aber auch noch nachträglich von Hand Dateien und Registry-Einträge ergänzen.

Einfache Tools ohne Agenten

Bei der Verteilung der Anwendungen verfolgen die Anbieter ebenfalls unterschiedliche Strategien. Produkte wie VMware ThinApp oder Xenocodes "Virtual Application Studio", die ohne Agenten auskommen, bringen häufig auch keine Backend-Komponenten mit. Der Administrator stellt hier Anwendungen über ein Netzlaufwerk oder über die Software-Verteilungslösung eines Drittanbieters auf den PC-Arbeitsplätzen bereit.

Die Integration in die Shell erfolgt in der Regel mit Hilfe von Microsoft-Installer-Dateien (MSI). Ein Doppelklick auf eine DOC-Datei startet dann beispielsweise ein virtualisiertes Word genauso, wie es der Anwender gewohnt ist. Die MSI-Dateien müssen dann aber auf herkömmliche Art und Weise verteilt werden, was eigentlich dem Grundgedanken der Software-Virtualisierung widerspricht, da man ja möglichst ohne Installation auskommen möchte.

Vorteile von Agenten

Produkte, die auch die Verteilung virtualisierter Applikationen erlauben, bieten Features, die traditionellen Client-Management-Produkten fehlen. Beispielsweise lässt sich bei Installfree die Shell-Integration dann ebenfalls virtualisieren. Noch bevor der Benutzer die Anwendung zum ersten Mal startet, werden Verknüpfungen in das Startmenü des Anwenders eingeblendet. Entzieht der Administrator dem Benutzer oder der Gruppe die Berechtigung für den Zugriff auf die Anwendung, verschwinden auch automatisch die Verknüpfungen.

Technik mit Potenzial

Bei Virtualisierung denken die meisten an die Konsolidierung und bessere Auslastung von Servern. Die Virtualisierung von Anwendungen ist dagegen noch weithin unbekannt. Laut einer Studie von IDC und Credit Suisse wird jedoch die jährliche Wachstumsrate von derartigen Lösungen in den USA bis 2012 auf 36 Prozent geschätzt, Server-Virtualisierung soll dagegen im Durchschnitt nur um 22,6 Prozent wachsen. Die Desktop-Virtualisierung soll der Untersuchung zufolge sogar noch schneller zulegen (58,7 Prozent).

Dieses starke Wachstum für Anwendungsvirtualisierung beginnt allerdings auf einem niedrigen Niveau. Das dürfte daran liegen, dass bis vor nicht allzu langer Zeit kleinere Hersteller dieses Segment dominierten.

Eine Reihe von Übernahmen durch Branchenschwergewichte dürfte diese Produkte für viele Unternehmen erst jetzt hoffähig machen. Dazu zählen VMwares "ThinApp" (vormals "Thinstall"), Microsofts "Application Virtualization" ("Softgrid") und Symantecs "Altiris Software Virtualization".

Dass virtualisierte Anwendungen nicht installiert werden müssen, eröffnet neue Möglichkeiten, die man nur voll ausschöpfen kann, wenn sie auch von den Tools im Backend unterstützt werden. Zum Beispiel kann man bei Symantecs Altiris SVS Anwendungen über ein Web-Portal für Außendienstmitarbeiter oder Partnerunternehmen bereitstellen.

Auch das Lizenz-Management ist unter Umständen anzupassen. Schließlich fallen nur Lizenzkosten an, wenn ein Programm tatsächlich vom Anwender auf den Arbeitsplatz geladen worden ist. Interessante Features sind in diesem Zusammenhang, dass auch konkurrierende Lizenzen unterstützt werden und dass sich die Einhaltung von Lizenzbedingungen erzwingen lässt. Stehen für eine bestimmte Anwendung keine Lizenzen mehr zur Verfügung, wird dem Nutzer der Zugriff verweigert. Die Virtualisierungslösung sollte dem Rechnung tragen und über ein entsprechendes Software-Metering im Backend verfügen.

Wann sich der Aufwand lohnt

Der Betreuungsaufwand dieser komplexen Lösungen ist sicher höher. Der Agent muss verteilt und gewartet werden. Im ungünstigsten Fall erfordert eine neue Version der Ablaufumgebung die Neuerstellung der Pakete.

In vielen Bereichen muss die Systemverwaltung umdenken. So lässt sich auch das Patch-Management nicht mehr auf die herkömmliche Art und Weise regeln. Häufig lohnt sich der zusätzliche Aufwand nur, wenn das gesamte Software-Deployment auf die Virtualisierungslösung umgestellt werden kann. (ws)