Container versus Virtualisierung

Hypervisor-basierte Container - das Beste aus zwei Welten?

Björn Böttcher ist Senior Analyst und Data Practice Lead bei Crisp Research mit dem Fokus auf Analytics, BI, datenbasierte Geschäftsmodelle und Künstliche Intelligenz. Mit mehr als 10 Jahren Berufserfahrung in der IT und einem wissenschaftlichen Hintergrund und Fokus stehen moderne Lösungen mit praktischem Nutzen im Fokus seiner Betrachtung.

Normal 0 21 false false false DE X-NONE X-NONE /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Normale Tabelle"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-fareast-language:EN-US;}
Mit Hypervisor-basierten Containern lassen sich die Vorteile der klassischen Virtualisierung mit denen von Container-Techniken verbinden.

Hybrid- und Multi-Cloud-Szenarien treiben die Container-Entwicklung voran. Die Abstraktionsebene, auf der Container angesiedelt sind, eröffnet vielen Unternehmen eine effiziente Methode, einschlägige Cloud-Strategien zu realisieren. Auf Containern basierende Applikationslandschaften verringern das Risiko, vom Produktportfolio eines Herstellers abhängig zu werden.

Container-Techniken und klassische Virtualisierung via Hypervisor müssen keine Gegensätze sein.
Container-Techniken und klassische Virtualisierung via Hypervisor müssen keine Gegensätze sein.
Foto: SasinTipchai - shutterstock.com

Die Entwicklung von Cloud-nativen Applikationen mittels Microservice-Architekturen bietet eine Reihe von Vorteilen:

  • Bessere Skalierbarkeit: Wird ein Teil-Service einer Applikation zu einem Zeitpunkt mehr in Anspruch genommen als die anderen, ist er in der Lage, eigenständig zu skalieren, ohne die restlichen Teile der Applikation negativ zu beeinflussen.

  • Höhere Verfügbarkeit der gesamten Applikation: Fällt ein Teil-Service aus, beeinflusst er damit nicht die gesamte Applikation, sondern nur die Funktionalität, die er abbildet. Das kann bedeuten, dass ein Teilausfall keine direkte Außenwirkung hat, wenn es sich dabei um einen Backend-Service handelt.

  • Bessere Agilität: Änderungen, Verbesserungen und Erweiterungen lassen sich unabhängig von der Funktionalität der gesamten Applikation vornehmen und ohne andere Teil-Services zu beeinträchtigen.

  • Continuous Delivery: Die Änderungen, Verbesserungen und Erweiterungen lassen sich regelmäßig vornehmen, ohne dass für die gesamte Applikation ein Update vorgenommen werden muss beziehungsweise ohne die gesamte Applikation in den Wartungsmodus zu schicken.

Lesen Sie dazu auch:

Sechs Trends für Ihre Cloud-Strategie

Durch den zusätzlichen Druck der Digitalisierung geraten gerade Container-Technologien immer mehr in den Fokus vieler Unternehmen und Hersteller. Die Tastaturen der Entwickler glühen und der Einzug in immer mehr Unternehmensbereiche macht dies deutlich. Über die Hälfte der Firmen, die Container nutzen, haben bereits die Planungsphase abgeschlossen und neben Prototypen bereits erste Workloads und produktive Systeme im Einsatz. Weiterhin wird die Lösung von 90 Prozent der Entscheider, denen die Technologie bekannt ist, als strategisch wichtig eingestuft und als kommender Standard prognostiziert.

Hypervisor-basierte Container - wozu?

Mit Containern gehen indes viele Vorteile verloren, die Unternehmen mit virtuellen Maschinen genießen. Auch im Umfeld der Virtualisierung gab es Technologien, die verschiedene Bedürfnisse beim Betrieb von Servern auf Hardware adressierten. Durch die Virtualisierung erlangte man unter anderem:

  • eine bessere Verfügbarkeit,

  • eine höhere Zuverlässigkeit,

  • eine bessere Wartbarkeit,

  • und eine bessere Ressourcenauslastung.

Dabei sind unterschiedliche Typen von Virtualisierung zur Anwendung gekommen. Generell unterscheidet man zwischen Typ I und Typ II Virtualisierungen auf der Hypervisor-Ebene. Der Hypervisor oder auch Virtual Machine Monitor (VMM) sitzt dabei entweder direkt auf der Hardware oder auf dem Betriebssystem. Zu den erstgenannten gehören Produkte wie ESX von VMware oder auch XEN. Zu den letztgenannten zählen Virtualbox, Windows Virtual PC oder auch VMware Workstation.

Schichtenmodell von Virtualisierungsmethoden
Schichtenmodell von Virtualisierungsmethoden
Foto: Crisp Research AG 2017

Um die Vorteile der Hypervisor-Technologie mit den Vorteilen der Container-Technologie zu verschmelzen, sind momentan einige Projekte und Produkte auf den Weg gebracht worden. Einige sind bereits reif für den produktiven Einsatz. Hypervisor-basierte Container sollen die Sicherheitsrichtlinien abbilden können, die von Arbeitsabläufen benötigt werden. Ferner sollen Ressourcen explizit den Containern zugewiesen werden können. Gesteuert wird diese neue Art der Container über klassische Verwaltungswerkzeuge von Administratoren oder durch REST-Schnittstellen, entweder lokal oder per HTTPS über das Netzwerk.

Wer entwickelt Produkte in diesem Bereich?

Wer entwickelt nun Hypervisor-basierte Technologien mit den Einflüssen von Container-Paradigmen? Sicherlich die Hersteller aus dem Umfeld der Virtualisierung, der Hardwareentwicklung und der Welt der Betriebssysteme. Dazu gehören unter anderem:

  • Canonical (LXD)

  • Intel (Clear Container)

  • Hyper (runV)

  • VMware (vSphere Integrated Container - VIC)

Ziel ist es, die Virtualisierungstechnologien aus dem eigenen Hause oder aus Open-Source-Projekten soweit anzupassen, dass die hardwareseitige Unterstützung möglichst optimal genutzt werden kann. Zu Zeiten, in denen die Virtualisierungstechnologie entstanden ist, also in den 40er Jahren, stellte man sich die Frage, wie man viele Betriebssysteme / Server auf einer Hardware nutzen kann. Heute sollte die Frage bei der Entwicklung von Virtualisierungstechnologien eher auf den Einsatzbereich von Cloud-nativen Applikationen zielen. Die Ausführung von möglichst vielen dieser Anwendungen in einem sicheren Kontext auf einer Hardware-Plattform ist das neue große Ziel.

Zu beachten ist dabei, dass durch das Hinzufügen von Hypervisor-Ansätzen zu Container-Technologien oder umgekehrt auch ein größerer Ressourcenbedarf für einen Container besteht. Zusätzlich und vermutlich kritischer ist die Tatsache, dass die Public-Cloud-Anbieter noch keinen Support für diese Art der Container-Technologie anbieten. Eine Nutzung ist also vorerst auf den On-Premise Bereich limitiert, da hier ein entsprechender Hardware-Support von den Anbietern benötigt wird.

Diese drei Handlungsempfehlungen sollten IT-Verantwortliche berücksichtigen:

1) Container-Technologien inklusive Ökosystem evaluieren

Mit Containern zu starten, ist leicht. Schließlich sollen sie die Komplexität reduzieren und Portierbarkeit ermöglichen. Doch nach den ersten Hürden tauchen schnell weitere Fallstricke im Betrieb auf. Entscheider sollten sich bei der Auswahl der Komponenten aus dem Ökosystem rund um die Container-Technologie genauestens mit den Anbietern und Produkten auseinandersetzen. Es tummeln sich viele Fische im Teich und die Wahl des richtigen will wohl überlegt sein. Oftmals stecken auch mehrere Hersteller und Investoren mit unterschiedlichen strategischen Interessen hinter den Tools und Lösungen.

2) Developer müssen die Flexibilität und Einfachheit behalten und Sicherheit hinzubekommen

Die Entwicklung im Ökosystem ist aus unterschiedlichen Perspektiven und Motiven gut für die Entstehung von produktionsreifen Systemen. Doch die Entwickler müssen innerhalb des Cloud-nativen Ansatzes weiterhin die Kontrolle über die Flexibilität und Portierbarkeit der Applikation behalten. Die Entwicklung der Container-Technologie muss den Level der Abstraktion aufrechterhalten und dabei die größtmögliche Sicherheit und Kontrolle über die Konfigurierbarkeit für die Administratoren / Ops-Teams hinzufügen. Nur so können global skalierende, sichere Anwendungen bereitgestellt werden, die den Entwicklern die Lust am Entwickeln nicht nehmen.

3) Operations und Automation: die Komplexität beherrschen

Unterschätzten Sie nicht die steigende Komplexität in Ihrem Rechenzentrum oder Ihrer Cloud-Strategie. Die zunehmende Anzahl von Lösungen und die Heterogenität, gerade bei existierenden Legacy-Applikationen, sollte nicht auf die leichte Schulter genommen werden. Selbst Start-ups haben bei den vielen Möglichkeiten des Betriebs von Containern bereits einige Mühe, alle Anwendungen auf demselben Stack zu halten. Planen Sie daher sorgfältig und legen Sie klare Entscheidungsrichtlinien für den Betrieb, bestehende Applikations-Lebenszyklen und für die Neuentwicklung fest.