Lösungen & Produkte
Bild1_Stage_Einführung in Container Technologie

Moderner Applikationsbetrieb mit Containern

Einführung in die Container-Technologie

Einführung in die Container Technologie
27.04.2021
Cloud
Technisch

Auf dem Weg in die Cloud läutet die Container-Technologie eine neue Ära ein. Die Art, wie Anwendungen entwickelt, ausgeliefert, bereitgestellt und betrieben werden ändert sich grundlegend, denn Container bringen das Konzept der Apps auf den Server.


Das Prinzip ist einfach: Jeder Container enthält eine Anwendung, aber auch alle Ressourcen, die diese zur Laufzeit benötigt.


Ihre Vorteile können Container besonders gut in Cluster-Umgebungen und Rechenzentren entfalten, denn ein Container fasst jede einzelne Anwendung mitsamt all ihrer Abhängigkeiten (Bibliotheken, Hilfsprogramme und statische Daten) in einer Image-Datei zusammen, die ohne Betriebssystem auskommt. Deshalb ist oft auch von einer „leichtgewichtigen Virtualisierung“ die Rede.

Leichtgewichtige Virtualisierung

Diese „leichtgewichtige Virtualisierung“ erleichtert die horizontale Skalierbarkeit der Workloads. Gemeint ist damit die Fähigkeit, die bereitgestellte Rechen- und/oder Speicherkapazität zu erhöhen, indem mehrere Hardware- oder Softwarekomponenten so miteinander vernetzt werden, dass sie wie eine einzige logische Einheit arbeiten.


Horizontal skalieren wird auch als „Scale out“ bezeichnet. Braucht ein Cluster mehr Ressourcen, um die Leistung zu verbessern oder Hochverfügbarkeit zu erhalten, können relativ einfach weitere Server hinzugefügt werden, um diesen Cluster horizontal zu skalieren.


Im Gegensatz dazu erhöht die vertikale Skalierbarkeit die Kapazität durch das Hinzufügen zusätzlicher Ressourcen zu einem bestimmten Server. Das kann beispielsweise mehr Speicher sein oder eine zusätzliche CPU, um die Performance des einen Servers zu steigern.


Vertikal skalieren wird daher auch als „Scale up“ bezeichnet und bedingt im Normalfall eine Ausfallzeit, in der dann die neuen Ressourcen eingebaut werden. Im Vergleich zur horizontalen Skalierbarkeit bestehen zudem engere Grenzen, die durch die Hardware festgelegt sind.


Ein weiterer großer Vorteil der horizontalen Skalierbarkeit liegt in der Möglichkeit, die Kapazitäten im laufenden Betrieb erhöhen zu können. Damit wird die horizontale Skalierbarkeit zumindest theoretisch nur dadurch begrenzt, wie viele Server in den Cluster integriert werden können.

Vergleich: Container vs. Virtuelle Maschinen

Das Neue an diesem Weg der Anwendungsbereitstellung ist: Die Container werden erst auf Betriebssystemebene und nicht schon wie klassische Virtuelle Maschinen (VMs) auf Hardware-Ebene bereitgestellt. Container sind daher sowohl untereinander als auch vom Host isoliert.


Sie verfügen über eigene Dateisysteme, können die Prozesse anderer Container nicht „sehen“ – und sie können im Ressourcenverbrauch strikt begrenzt werden. Das heißt auch: Die Containerisierung eignet sich vorzugsweise für neue Anwendungen, die von vorneherein für diese Art von Infrastruktur entwickelt werden.


Bei der Modernisierung von Legacy-Applikationen dagegen, die klassischerweise monolithisch aufgebaut sind, kommen am besten Scale-Up-Architekturen zum Einsatz. In der Cloud könnten diese dann ebenfalls relativ einfach mit neuen Container-Anwendungen integriert werden.


Das Gute ist: Container sind viel einfacher zu erstellen als VMs

Aufgrund der Entkopplung der zugrunde liegenden Infrastruktur und dem Dateisystem des Hosts lassen sich Container – anders als VMs – auch über Cloud- und Betriebssystem-Grenzen hinweg portieren.


Schwierig gestaltet sich in beiden Fällen der ökonomische Umgang mit Ressourcen. Das ist zum Beispiel dann der Fall, wenn sehr viele sehr kleine Container zu verwalten sind, die jeder für sich nur wenig Last produzieren.


Selbst wenn die Container-Virtualisierung sehr clever mit dem virtualisierten Ressourcen RAM, CPU und Massenspeicher umgeht, entsteht unvermeidlich ein Overhead, der schnell dazu führen kann, dass die vielen kleinen Container Ressourcen reservieren, ohne tatsächlich ausgelastet zu sein.


Jede VM dagegen bringt als Overhead das Betriebssystem und die Pakete mit, was leicht zu einem Overcommitment der Infrastruktur führen kann. Das ist zwar wegen der reservierten RAM- und CPU-Ressourcen auch bei Containern möglich, allerdings ist der Verschnitt hier meist geringer. Durch vertikale Autoskalierung kann eine dynamische Zuweisung von Minimal- und Maximalwerten für die Ressourcen erreicht werden. Dann müssen die Administratoren sich keine Gedanken mehr um die Werte machen, die sie für die CPU- und Speicheranforderungen eines Containers angeben. Das Autoscaling kann Werte für CPU- und Speicheranforderungen, aber auch Limits empfehlen oder die Werte automatisch aktualisieren.

Herausforderungen im Container Betrieb

Schon diese trivialen Beispiele machen klar: Für den reibungslosen und performanten Betrieb von Containern in der Cloud ist konsequentes Management unumgänglich. Dafür ist Spezialwissen erforderlich.


IT-Abteilungen kämpfen zumeist mit der Integration der neuen Plattform in die bestehende IT-Landschaft und müssen dazu nicht selten auf kostspielige kommerzielle Kubernetes-Plattformen zurückgreifen, denn neben dem reinen Setup und der notwendigen Integration ist auch ein breites Wissen über Update-Mechanismen, Patching und Betrieb erforderlich.


Die Komplexität nimmt besonders dann zu, wenn nur wenig Erfahrungswerte mit Hyper-Scaler-Plattformen wie z.B. Amazon Web Services vorliegen und wenn das IT-Team sich zusätzlich um grundlegende Skalierungs-, Abrechnungs- und Governance-Themen der Cloud kümmern muss.


Einen Ausweg dafür bietet der Container-Betrieb als Managed-Services.

AWS Container Acceleration

Einfach und schnell zur eigenen Cloud-nativen Container Umgebung in Amazon Web Services.

Cloud Transformation mit Arvato Systems

Hier erfahren Sie mehr über die Leistungen von Arvato Systems im Bereich Cloud Transformation.

Verfasst von

MA_Kathrin_Kleinschnittger_Cloud
Philipp Hellmich
Experte für Cloud