Sponsored Post Was ist das?

Container vs. virtuelle Maschine – welche Technologie eignet sich für mein Unternehmen?

(Foto: Shutterstock / Bobnevv)

Anzeige

Container-Technologien fördern die moderne, agile Entwicklung in Unternehmen. Aber sind sie wirklich das Nonplusultra oder haben auch virtuelle Maschinen (VM) nach wie vor eine Daseinsberechtigung? Und welche Rolle spielt Serverless in all dem?

Steht euer Unternehmen auch vor der Herausforderung, seine Geschäftsprozesse schneller und agiler zu gestalten, um sich so im Wettbewerb noch besser zu behaupten? Ihr wollt neue Anwendungen oder Updates möglichst rasch bereitstellen, um die steigenden Anforderungen der Kunden zu erfüllen? So geht es aktuell vielen Unternehmen in Deutschland. Container und die zugrunde liegende Technologie Docker helfen dabei, der Herausforderung zu begegnen und die Entwicklung zu beschleunigen. Dabei werden Applikationen nicht mehr als starre Monolithen gestaltet, sondern in viele einzelne Bestandteile aufgebrochen. Die können unabhängig voneinander weiterentwickelt werden.

Nun stellt sich im Umfeld der Container-Euphorie häufig die Frage, ob virtuelle Maschinen, die als schlankere und schnellere Alternative zu dedizierten Servern bekannt sind, so langsam ihre Daseinsberechtigung verlieren. So geistert bereits seit geraumer Zeit der Begriff der Postvirtualisierung durch die Fachwelt. Zusätzlich scheinen Konzepte wie Serverless Computing der klassischen VM-Nutzung das Leben schwer zu machen. Doch welches Konzept ist nun tatsächlich die richtige Wahl – beziehungsweise müssen Unternehmen sich überhaupt für eine Möglichkeit entscheiden?

Mit Fokus auf die Developer-Journey, also die optimale Unterstützung der Software-Entwicklung, sowie die Anpassungsgeschwindigkeit in Bezug auf Kundenbedürfnisse (Time-to-Market) hat PlusServer ein umfangreiches Whitepaper zur optimalen Orchestrierung von Containern veröffentlicht. Welche Faktoren es dabei zu beachten gilt und weshalb es keinen allumfassenden Ansatz gibt, erfahrt ihr dort.

Jetzt kostenlos das Whitepaper holen!

(Grafik: PlusServer)

Was sind VM?

Eine virtuelle Maschine verhält sich im Grunde wie ein dedizierter Server, stellt bestimmte Hardware-Ressourcen zur Verfügung und wird mittels eines eigenen Betriebssystems gesteuert. Jedoch beherbergt ein physischer Server eine Vielzahl an VM, die sich dessen CPU, Arbeitsspeicher und Speicherplatz teilen. Um VM zu erstellen und auszuführen, ist auf dem Hostsystem ein Hypervisor erforderlich. Das ist in der Regel eine Software wie zum Beispiel VMware, vSphere, Microsoft Hyper-V oder die Open-Source-Technologie OpenStack. Da VM schneller starten (innerhalb von Minuten) und sich leichter vervielfältigen lassen als dedizierte Server, gelten sie als effiziente Alternative zur Dedicated-Variante. Zudem können virtuelle Ressourcen in Form von Cloud-Computing-Angeboten nach Bedarf bezogen werden, sodass sie als besonders wirtschaftlich gelten.

Was sind Container?

Container verpacken Anwendungen samt ihrer kompletten Laufzeitumgebung mit allen notwendigen Abhängigkeiten in handliche Pakete. Dieses Komplettpaket macht die Anwendung unabhängig von bestimmten Plattformen. Es ist daher möglich, Container beliebig zwischen verschiedenen Umgebungen zu portieren. Sie benötigen kein spezielles Gastbetriebssystem, da sie bereits alle nötigen Komponenten an Bord haben. Aufgrund ihres schlanken Aufbaus passen auf einen Server deutlich mehr Container als virtuelle Maschinen. Daher werden Container schneller gestartet (in Millisekunden) und verbrauchen weniger Ressourcen in der Gastumgebung.

(Grafik: PlusServer)

Entweder Container oder VM?

Unternehmen, die einen hohen Digitalisierungsgrad anstreben, kommen an Containern heute kaum noch vorbei. Denn mit der Digitalisierung geht eine steigende Anzahl der Anwendungen im Unternehmen Hand in Hand. Diese sollen mithilfe von Containern möglichst schnell entwickelt und bereitgestellt werden. Mit der Zahl der Anwendungen steigt häufig auch die Zahl der Cloud-Plattformen in Unternehmen, um für jede Anwendung die ideale Umgebung zu nutzen. Die Mobilität von Containern und Unabhängigkeit vom Host-Betriebssystem erlauben es, in Containern verpackte Applikationen frei zwischen verschiedenen Plattformen zu bewegen. Mit virtuellen Maschinen ist das nicht ohne Weiteres möglich, da sie mithilfe eines bestimmten Hypervisors erstellt wurden. Basiert eine weitere Cloud-Plattform auf einem anderen Hypervisor, ist die VM nicht mit der Umgebung kompatibel.

Warum also überhaupt noch virtuelle Maschinen nutzen? Zum einen eignet sich aktuell noch nicht jede Anwendung oder jeder Dienst für die Containernutzung. Wenn es beispielsweise auf Datenpersistenz ankommt, wie es etwa bei Datenbanken der Fall ist, sind VM nach wie vor die bessere Wahl. Auch Sicherheitsaspekte sprechen häufig für VM, da jede VM isoliert und die zugrundeliegenden Hypervisoren weniger empfindlich für Angriffe sind als zum Beispiel ein Linux-Kernel. Da sich mehrere Container den gleichen Betriebssystem-Kernel teilen, sind bei einem kompromittierten Linux-Kernel alle davon abhängigen Container ebenfalls betroffen.

Für die meisten Unternehmen empfiehlt es sich also – aufgrund ihrer Vielzahl an Applikationen und Diensten – beide Technologien parallel zu nutzen. So können etwa VM in Form einer Private Cloud für konstante Lasten, Datenbanken und Business-Anwendungen herangezogen werden, während die Entwicklung in Containern in der Public Cloud stattfindet.

Und was ist mit Serverless?

„Run code, not servers“ – nach diesem Motto will Serverless Computing Entwicklern das Leben erleichtern. Sie können einfach ihren Code erstellen, ihn mit bestimmten Config-Parametern versehen und die betreffende Funktion anschließend in der Cloud zur Verfügung stellen. Eine Funktion kann dabei etwa lauten: „Erstelle einen Datenbankeintrag, nachdem eine Datei hochgeladen wurde.“ Ein bekanntes Beispiel für einen Serverless-Dienst ist Amazon Lambda. Wird die Funktion aufgerufen, startet Lambda sie in einem Container, bis ihre Ausführung beendet ist. Die Abrechnung richtet sich nach dem tatsächlichen Ressourcen-Verbrauch. Der Kunde bezahlt also nur, wenn und solange eine Funktion auch wirklich ausgeführt wird.

Da Serverless wie Container eine agile Entwicklung unterstützt, wird oft von einem Entweder-Oder der beiden Technologien ausgegangen. Jedoch kann (und sollte) wie bei VM und Containern beides parallel genutzt werden. Weil die Nutzer bei Serverless-Angeboten keine Kontrolle über die zugrunde liegenden Container haben und es hier gewisse Limits seitens der Anbieter gibt, müssen die Funktionen eher schlank gehalten werden. So ist es für Unternehmen nicht praktikabel, komplette Applikationen auf einer Serverless-Architektur abzubilden. Kleinere Aufgaben, die im Hintergrund ablaufen, sind jedoch gut in einer schnellen und wirtschaftlichen Serverless-Umgebung aufgehoben.

Last but not least: Container-Management

Wer sich mit Containern befasst, stößt recht schnell auf Kubernetes. Um die Vielzahl interagierender Container innerhalb einer Anwendung zu beherrschen, benötigt man eine Orchestrierungslösung. Dabei ist Kubernetes aufgrund zahlreicher Features sowie einer sehr aktiven Community eines der meistverwendeten Tools. Es bringt Fähigkeiten wie Loadbalancing, API, Autoscaling oder Scheduling mit und erleichtert so das Handling von Containern. Wem das noch nicht genügt oder wer sich die Arbeit mit Containern noch weiter erleichtern will, der kann zudem auf Managed-Kubernetes-Angebote von Cloud-Service-Providern wie PlusServer zurückgreifen. Diese reichen von „out of the Box“-Lösungen wie Managed OpenShift bis hin zu kundenindividuellen Lösungen.

Welche Vorteile eine Migration hat, welche Ängste Unternehmen genommen werden können und wann Entscheider auf Framework- oder auf DIY-Ansätze zurückgreifen sollten, beleuchtet PlusServer in seinem großen Whitepaper zum Thema Managed Kubernetes. Auch technische Details werden ausführlich erklärt und auf relevante Cases angewandt.

Bitte schalte deinen Adblocker für t3n.de aus!

Hey du! Schön, dass du hier bist. 😊

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team bestehend aus 65 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Danke für deine Unterstützung.

Digitales High Five,
Stephan Dörner (Chefredakteur t3n.de) & das gesamte t3n-Team

Anleitung zur Deaktivierung