Auch wenn derzeit viel in Richtung Container läuft, haben Virtuelle Maschinen (VMs) noch lange nicht ausgedient. Beide Technologien haben ihre Daseinsberechtigung, denn sie unterscheiden sich in ihren Nutzungsmöglichkeiten. Ein Aspekt kommt in der Diskussion jedoch noch zu kurz: Das Thema Sicherheit.
Der Grundgedanke von Virtuellen Maschinen (VMs) und Containern ist der gleiche: Es geht darum, einen Server in verschiedene virtuelle Bereiche aufzuteilen, um dessen Kapazitäten optimal auszunutzen. Ansatzpunkte und Nutzungsmöglichkeiten der Technologien unterscheiden sich jedoch:
Virtuelle Maschinen setzen am sogenannte Hypervisor an, dem Unterbau zwischen Hardware und Betriebssystem, der physikalische Server in verschiedene virtuelle Server aufteilt. VMs verfügen jeweils über ein eigenes Betriebssystem, teilen sich aber CPU, Arbeitsspeicher und Speicherplatz der Hardware. Auf diese Weise lassen sich ohne Kompatibilitäts- oder Compliance-Probleme mehrere Anwendungen auf einem Server betreiben.
Container-Technologien sitzen hingegen auf dem Betriebssystem des Servers auf und nutzen jeweils Teile davon, um Anwendungen, beziehungsweise Bausteine davon, auszuführen. Da sie nicht über ein eigenes Betriebssystem verfügen, starten sie schneller als Virtuelle Maschinen und verbrauchen weniger Ressourcen. Auf einem Server lassen sich also generell mehr Container als VMs installieren.
Nichts überstürzen
Bedeutet das nun, dass Containerisierung die bessere Technologie ist, da sie Ressourcen-schonender arbeitet und Unternehmen folglich ihre Anwendungen von VMs in Container verschieben sollten? Auf keinen Fall! Einerseits müssen die Architekturen der Applikationen, die fortan in einen Container laufen sollen, auch darauf abgestimmt sein – was in den meisten Fällen erst einmal viel Vorarbeit bedeutet. Andererseits widerspricht dies auch dem Ursprungsgedanken von Containern als Entwicklerwerkzeug. Sie eignen sich etwa optimal für sogenannte Micro-Services. Dabei werden Anwendungen in verschiedene Bestandteile zerlegt, die jeweils in einem separaten Container laufen. Dies erleichtert es Entwicklern, den Quellcode einer Anwendung zu erstellen, da sie bei fehlerhaften Komponenten nur den jeweiligen Container korrigieren, beziehungsweise austauschen müssen.
Warum sollte also eine große SQL-Datenbank in einem Container laufen? Wo in klassischen Infrastrukturen doch seit vielen Jahren persistente und hochverfügbare Storages mit hohem I/O sowie funktionierendem Cluster- und Backup-Konzept im Einsatz sind? Wer das in einen Container verschiebt, ist schnell im experimentellen Bereich oder muss selbst sehr viel Know-how aufbauen. Das macht nur für sehr große Firmen und Cloud-Anbieter Sinn.
Container-Sicherheit steckt noch in den Kinderschuhen
Ein Aspekt, der häufig noch vernachlässigt wird, ist die Security von Containern. Anders als Virtuelle Maschinen teilen sich im Normalfall immer mehrere Container ein Betriebssystem. Das ist aus Security-Sicht problematisch, da im Fall eines erfolgreichen Hackerangriffs auf das Betriebssystem dann gleich mehrere Container betroffen sind.
Technologien zum Schutz von Containern, die hier ansetzen, stecken derzeit noch in den Kinderschuhen. Sie werden oft aus der VM-Welt übertragen und funktionieren nur teilweise. So existieren zwar zahlreiche veraltete Online-Repositories, von denen viele Anwender ihre Container beziehen. Diese weisen jedoch oft eklatante Sicherheitslücken auf.
Trotzdem können Verantwortliche selbst erste Schritte unternehmen, um Container abzusichern:
- Automatisiertes Patching: Container sollten regelmäßig oder sogar täglich mit gepatchten Quellen neu erstellt werden. Das erledigt man am einfachsten mit einer Build Pipeline und entsprechenden Automatisierungen.
- Absichern von Plattformen und Applikationen: Aktualisierungen und regelmäßige Patches sind auch hier unbedingt notwendig. Dies gelingt am besten durch eine enge Zusammenarbeit mit Entwicklern.
- Einsatz von Sicherheitsprodukten: Auch wenn diese noch nicht immer halten, was sie versprechen, gibt es doch schon interessante Ansätze. Daher sollten sich Verantwortliche hier über neue Entwicklungen auf dem Laufenden halten.
Container versprechen gegenüber Virtuellen Maschinen Vorteile. Unternehmen sollten vor einem überstürzten Wechsel jedoch genau evaluieren, ob dies wirklich zielführend ist und sich der Aufwand lohnt – insbesondere da sie eventuell auch in puncto Sicherheit Abstriche machen müssen. Denn bei effektiven Security-Produkten für Container-Technologien besteht noch sehr viel Entwicklungsbedarf.
Bildquelle: stock.adobe.com