Container-Virtualisierung: Docker und Kubernetes erfolgreich einsetzen
25.10.2019
Das Virtualisieren von Anwendungen mithilfe von Containern kommt bei Software-Entwicklern verstärkt zum Einsatz. Der Grund hierfür ist laut Thorsten Aye von x-cellent Technologies recht simpel: Die Kunden fragen immer häufiger danach, weil sie mehr und mehr verstehen, wie flexibel und agil und schnell diese Form der Anwendungsentwicklung ist.
Aber auch das Reduzieren der Software-Bausteingrößen spricht für diese Art der Programmierung, da sich Änderungen am Code schneller vornehmen lassen. Zudem vereinfacht der Einsatz fest definierter Schnittstellen große Software-Projekte. So spielt unter anderem die zugrunde liegende Software-Technik keine Rolle mehr, solange mittels der vorgegebenen APIs die richtigen Daten bereitgestellt werden.
Container-Virtualisierung ist schlanker und flexibler als die herkömmliche Abstrahierung
Die Virtualisierung von Anwendungen auf Container-Basis bietet laut Thorsten aber noch andere Vorteile. So wird bei der herkömmlichen Abstrahierung das komplette Systeme virtualisiert, also die zugrunde liegende Hardware (außer dem Prozessor) und das zum Einsatz kommende Betriebssystem. Auf Basis des Container-basierten Modelles kann man sich das komplett sparen, da nur die notwendigen Bibliotheken und andere Software-Komponenten in die Container eingebunden werden.
Damit verhalten sich Container wie Prozesse innerhalb eines Betriebssystems, die mithilfe geeigneter Mechanismen (sogenannten Control-Groups, kurz cgroups) vom Rest des Systems entkoppelt werden. Damit sind sie deutlich schlanker und einfacher administrierbar. Nicht zu vergessen die Entkopplung vom Gesamtsystem, was das Implementieren der Container flexibler gestaltet. Damit können Container im Grunde auf nahezu jeder Plattform eingesetzt werden, was sie sehr portabel macht.
Kubernetes als Dirigent der Container-basierten Umgebung
Wichtig dabei ist auch die Rolle von Technologien wie Docker und Kubernetes. So stellt Docker die Runtime für das Ausführen von Container-basierten Anwendungen zur Verfügung. Kubernetes hingegen ist der Orchestrator des gesamten Systems, sorgt also dafür, dass die klar definierte Anzahl an Containern pro Konfiguration permanent zur Verfügung steht.
Das bedeutet beispielsweise, dass Kubernetes darauf achtet, dass weitere erforderliche Container nachgeladen werden oder ein neuer Container gestartet wird, sobald ein anderer unplanmäßig beendet wird. Aber auch das Umziehen einer Container-Sammlung von einem Server auf einen anderen erledigt Kubernetes, und das jeweils zur Laufzeit und vollautomatisiert. Damit müssen sich Entwickler und Administratoren keine Gedanken um diese Prozesse machen.
Kubernetes-basierte Container-Anwendungen in Behörden und Banken
Nun stellt sich natürlich die Frage, wie und wo die Virtualisierung von Anwendungen auf Container-Basis eingesetzt wird. Hierfür hat Thorsten zwei Beispiele parat. So kommt diese Technologie beispielsweise für das Bereitstellen von kommunalen Bürgerserviceportalen zum Einsatz. Dort können sich Anwender beispielsweise mithilfe des elektronischen Personalausweises auf Behörden-Webseiten authentifizieren, worum sich eine Kubernetes-basierte Anwendung kümmert. Dazu gehören Datenbanken, Bedieneroberflächen und weitere Komponenten, die alle einem Container zugeordnet werden.
Als weiteres Einsatzszenario kommen Rechenzentrumsbetreiber in Betracht, die Landesbanken und Sparkassen mit Container-basierten Rechnerumgebungen versorgen, auf denen sich Online-Banking-Dienste befinden. Hier kommt vor allem die „Fähigkeit“ von Kubernetes zum Tragen, Anwendungen skaliert auszuführen, um auf unvorhergesehene Lastspitzen bestmöglich reagieren zu können.
Fazit: Container, Docker und Kubernetes sind flexibel und vielschichtig einsetzbar
Und, warum kommen die verfügbaren Container-Technologien bei x-cellent hauptsächlich zum Einsatz? Dazu hat Thorsten Aye eine ganz dedizierte Meinung: Sie sind flexibel und vielschichtig anwendbar. Entwickler sind also nicht auf bestimmte Techniken angewiesen. Und das ermöglicht ein sehr effizientes Arbeiten, das Spaß macht.