Veröffentlicht 28. April 2022
von Lars Nolte und Roman Asendorf
Kubernetes ist kein Allheilmittel
Container-Lösungen liegen im Trend. Eine führende Technologie, an der man in diesem Zusammenhang nicht vorbeikommt, ist Kubernetes. Bei vielen CIOs und Techniker:innen ruft Kubernetes Begeisterungsstürme hervor. Die erweiterbare Open-Source-Plattform verwaltet containerisierte Arbeitslasten und Services. Sie wird oft als ideale Plattform für das Hosting von Anwendungen gesehen, die in der Cloud laufen. Die Container lassen sich automatisiert bespielen, skalieren und warten. Hierdurch entfallen viele manuelle Prozesse. Auch Fehler lassen sich schneller beheben und neue Anwendungen zügiger ausrollen. Außerdem verringert die Containerisierung die Komplexität der Anwendungen. So überzeugt Kubernetes mit großem Mehrwert und einer hohen Entwicklungsgeschwindigkeit.
Allerdings gibt es beim Einsatz von Kubernetes verschiedene Faktoren zu berücksichtigen, denn die Plattform ist komplex und kein universelles Allheilmittel. Worauf es genau ankommt, erfahrt ihr hier.
Was vor dem Einsatz von Kubernetes zu bedenken ist
Ein häufiger Irrtum: Wenn etwas im Container läuft, läuft es sicher auch in Kubernetes. Doch nicht jedes Projekt eignet sich dafür. Daher gilt es, vorab mittels der Unterstützung durch den jeweiligen Softwarehersteller zu prüfen, ob das Produkt in der Open-Source-Plattform laufen würde.
Zum Thema Skalierbarkeit: Diese wird in viele Anwendungsfällen überhaupt nicht benötigt und würde nur wenig Möglichkeit zur Kostenersparnis bieten. Ein Beispiel hierfür wären ein Webshop oder eine Webvisitenkarte – beides bedarf im Regelfall keiner Skalierungsmechanismen. Falls doch, ist eine vertikale Skalierung meist kostengünstiger umsetzbar. Außerdem sind in diesem Zusammenhang auch die Hardwareanforderungen zu bedenken. Denn um Skalierbarkeit zu erreichen, muss entsprechende Hardware zur Verfügung stehen.
Ein weiterer Aspekt, der häufig unzureichend betrachtet wird, ist die Komplexität des Technologie-Stacks. Mit Kubernetes wird viel Automatisierung und Self-Healing in Verbindung gebracht. Diese Mechanismen funktionieren jedoch nur, wenn sie in Eigenleistung auch entsprechend berücksichtigt und kontrolliert werden. Nur dann können erwünschte Verhaltensweisen beim Produkt in Erscheinung treten. Zudem steigt beim Einsatz der Plattform die Komplexität zwischen der Infrastrukturschicht und dem, was die Endanwender:innen sehen. Hierauf müssen die Entwickler:innen vorbereitet sein.
Auch der Projektaufwand, bedingt durch die enge Abstimmung zwischen Softwareentwicklung und Betrieb, wird erheblich gesteigert. Es gilt, neue Arbeitsweisen (Stichwort: DevOps) zu erlernen und zwischen den Beteiligten zu vermitteln.
Darüber hinaus sind die Aspekte Betrieb und Maintenance im Blick zu behalten. Kubernetes muss als eine sich stetig veränderbare Infrastruktur verstanden werden. Das bedeutet, es gibt kurze Updatezyklen, stetig anzupassende Applikationen, Rolling Releases und vieles mehr.
Ebenfalls unterschätzt: Die Betrachtung der Infrastruktur im Entwicklungsprozess. Die Applikation muss unbedingt an die Gegebenheiten des darunter liegenden Kubernetes abgestimmt werden. Andernfalls ist keine reibungslose Funktion der Anwendung möglich. Zudem müssen infrastrukturelle Besonderheiten bedacht werden, wie beispielsweise die Persistenz – sprich, das Bereithalten von Daten über einen längeren Zeitraum.
Ein letzter, wichtiger Punkt ist die „Twelve-Factor-App“. Diese Methode ist oft (noch) nicht bekannt und wird nur unzureichend umgesetzt. Mithilfe ihrer Prinzipien lässt sich skalierbare, flexible und robuste Software bauen, die für die Cloud-Umgebungen geeignet ist. Kubernetes kann dabei helfen, die Standards der Twelve-Factor-App umzusetzen.
Fazit
Insgesamt bietet der Einsatz von Kubernetes zahlreiche Vorteile – sofern die Plattform für die eigene Anwendung geeignet ist. Allerdings geht mit dem Einsatz von Kubernetes einher, dass die Entwickler:innen genauestens über die Funktionsweise und den Ressourcenverbrauch der Applikation im Bilde sein müssen. Andernfalls kann der Betrieb in Kubernetes zu unerwarteten und überraschenden Ergebnissen führen – häufig leider im negativen Sinne.
Dein Experte: Roman Asendorf ist IT-Berater bei neusta infrastructure services. Er verfügt über umfassendes Know-how im Bereich Infrastruktur, Hosting und IT-Security. Für Kund:innen hat er bereits zahlreiche Kubernetes-Projekte konzipiert und umgesetzt.
Du willst mehr über das Thema erfahren?
Roman Asendorf freut sich, von dir zu hören: r.asendorf@neusta.de
Lars Nolte freut sich, von dir zu hören: l.nolte@neusta.de