Docker, Kubernetes & Co sind aktueller denn je. Aber Achtung: Die sogenannte Containerisierung verspricht mehr Schnelligkeit, Flexibilität und Skalierbarkeit, birgt aber auch Fallstricke – vor allem im Betrieb. Wer diese kennt, kann gegensteuern. Der Infrastruktur-Spezialist EWERK gibt Tipps aus der eigenen Projekt-Praxis. Mehr zu den Vorteilen der Containertechnologien für Unternehmen der kritischen Infrastrukturen finden Sie auch in unserem Whitepaper.
Container werden populärer
Angesichts des wachsenden Digitalisierungsdrucks setzen immer mehr Unternehmen auf Container: gekapselte Anwendungen, die dank fortgeschrittener Virtualisierungstechniken wenig Speicherplatz brauchen und trotzdem alles enthalten, was sie zur Ausführung benötigen. Solche Container können überall ausgeführt, leicht auf andere Infrastruktur übertragen und rechenzentrums- und cloudübergreifend betrieben werden. Mit Containern lassen sich neue Dienste und Anwendungen flexibel und schnell zur Verfügung stellen und an wachsende Anforderungen anpassen. Und nicht zuletzt sind sie eine geeignete Basis für moderne Microservice-Architekturen.
Ihre Popularität verdankt die Containerisierung nicht zuletzt leistungsfähigen Open-Source-Tools wie Docker oder Kubernetes. Denn mit der Zahl genutzter Container – bei Architekturen mit Microservices oder „Self-Contained Systems“ sind das schnell mehrere Hundert oder Tausend – wachsen auch die Anforderungen an die Orchestrierung (die automatisierte Bereitstellung, Verwaltung, Skalierung und Vernetzung) von Containern. Standard dafür ist heute Kubernetes – auch EWERK führt immer häufiger komplexe Kubernetes-Projekte durch.
Ursprünglich von Google entwickelt und seit 2014 Open Source, bietet Kubernetes (von grch. κυβερνήτης ‚Steuermann‘) neben automatisierter Container-Orchestrierung auch Funktionen für Lastverteilung, Speicherorchestrierung, Self-Healing und Failover. Der Studie „The State of Kubernetes 2021“ von zufolge setzen bereits 65 Prozent der befragten Unternehmen Kubernetes in der Produktion ein – 2018 sagten das noch weniger als ein Drittel (30 %) der Firmen. Zu den wichtigsten Vorteilen zählten aus Sicht der Befragten die bessere Ressourcennutzung (58 %), Erleichterungen bei Upgrades und -Wartung (48 %) sowie kürzere Software-Entwicklungszyklen (46 %).
Herausforderung Komplexität
Es gibt aber auch Hindernisse: 65 Prozent der von VMware Befragten sehen fehlende Erfahrung und Fachwissen als Herausforderung beim Einsatz von Kubernetes, 46 Prozent die Erfüllung von Sicherheits- und Compliance-Anforderungen und 43 Prozent Schwierigkeitenbei der Integration in die bestehende Infrastruktur. Quelle: VMware:

Gerade der erste Punkt – Erfahrung und Expertise – sollte nicht unterschätzt werden. Denn die Komplexität bei der Implementierung und dem Betrieb umfangreicher Container-Infrastrukturen ist beträchtlich. Kubernetes soll diese Komplexität reduzieren, ist aber selbst eine sehr komplexe modulare Software, die auch IT-Spezialisten vor Herausforderungen stellt. Das beginnt schon bei der Auswahl der richtigen Distribution – damit haben nicht weniger als 96 Prozent der von VMware befragten Personen Probleme. Die Cloud Native Computing Foundation (CNCF) listet über 100 zertifizierte Distributionen und Hosting-Services auf.
Die Implementierung ist nicht weniger herausfordernd. Das beginnt bei komplizierten Kubernetes-Konzepten wie etwa „Pods“, die von „Deployments“ oder „StatefulSets“ erzeugt oder einem „ReplicaSet“ gesteuert werden. In der Regel müssen Netzwerkressourcen wie Services, Ingresses oder Load Balancing konfiguriert werden. Vor allem aber sind zusätzlich auch Kenntnisse über Infrastructure as Code (IaC) essenziell, also die Beherrschung von Tools wie Ansible oder Terraform. IaC ermöglicht die automatisierte Verwaltung und Bereitstellung von Infrastruktur-Ressourcen mittels maschinenlesbaren Dateien, die bestimmte Konfigurationen definieren. Das erlaubt es, ähnlich wie in der Softwareentwicklung Infrastruktur-Konfigurationen – wie zum Beispiel Kubernetes-Cluster – zu entwickeln, zu testen, konsistent auszurollen und zu aktualisieren.
Komplexität verlagert sich in den Betrieb
Machen wir uns nichts vor: Komplexe Infrastrukturen bleiben komplex – auch mit Kubernetes. Das macht sich auch im laufenden Betrieb bemerkbar. Zwar macht es Kubernetes einfacher, verteilte Systeme bereitzustellen und zu managen. Dennoch wird der Aufwand für Wartung & Aktualisierung von Kubernetes-Clustern im Vorfeld nicht selten unterschätzt. Und weil im Zusammenspiel der zahlreichen Container untereinander und mit anderen Systemen stets unerwartete Dinge passieren können, ist ein umfassendes Monitoring im Betrieb unabdingbar.
Ein weiteres Problem: Die Container selbst verstecken Komplexität, die dadurch in den Betrieb verlagert wird. Genauer verstecken Container die Komplexität der in ihnen gekapselten Software-Komponenten – Bibliotheken, Anwendungen, Datenbanksysteme etc. Entwickler müssen – und sollten – einigen Aufwand treiben, um den Überblick über die verwendeten Komponenten zu behalten – denn das ist nicht zuletzt aus lizenzrechtlichen, regulatorischen und Sicherheitsgründen wichtig. Zudem machen es Container einfach, Applikationen schnell zu testen, zu verwerfen und neu aufzusetzen. Dadurch kann es vorkommen, dass nicht genügend langzeitgetestet wird – schon gar nicht mit einer gut gefüllten Datenbank – und dann das Operations-Team vor einem Problem steht. Genau das passierte in einem unserer Projekte: Die Entwickler des Kunden hatten versäumt, sich um die Rotation und Komprimierung der Logfiles eines Datenbank-Pods zu kümmern, und nach einiger Zeit lief der physische Speicher (Physical Volume) des Container voll und stürzte ab. Da wir solche Probleme kennen, kommt das in produktiven Anwendungen nicht vor, weil wir vorher ausführlich auf Skalierbarkeit, Sicherheit und versteckte Probleme testen.
Herausforderung Sicherheit
Die Komplexität von Container-Infrastrukturen – offensichtlich oder versteckt – ist auch eine Herausforderung für die IT-Sicherheit. Wie die schon mehrfach erwähnte VMware-Studie zeigte, haben fast alle Unternehmen (97 %) beim Einsatz von Kubernetes Sicherheitsbedenken. Im Einzelnen bereitete den Befragten vor allem die Anwendung konsistenter Richtlinien, die Absicherung von Container-Images in einer CI/CD-Pipeline sowie die Absicherung containerisierter Workloads zur Laufzeit Sorgen. Denn weil ein einzelner Container Bibliotheken und anderen Code aus einer Vielzahl von Quellen enthalten kann, ist es schwierig sicherzustellen, dass keine (bekannten) Sicherheitslücken unwissentlich integriert worden sind. Und selbst wenn eine Anwendung sicher ist, wenn sie produktiv geht, muss auch jederzeit gewährleistet sein, dass neu entdeckte Schwachstellen umgehend gepatcht werden. EWERK setzt dafür Experten für Security Operations ein, die die aktuelle Bedrohungslage verfolgen, die neuesten Sicherheitslücken und Angriffsvektoren kennen und die betriebenen Systeme schützen.
Herausforderung für Dienstleister
Für einen reibungslosen und sicheren Betrieb containerisierter Infrastrukturen sind effiziente Prozesse für die enge Abstimmung zwischen Entwicklern und Betriebsteam unverzichtbar – über den gesamten Lebenszyklus von Containern hinweg. Die Hoffnung vieler Unternehmen ruht hierbei auf DevOps oder DevSecOps, also einer engen Verzahnung von Entwicklungs- und Betriebsaktivitäten sowie ggf. Absicherungsprozessen.
Doch was passiert, wenn ein Unternehmen den Betrieb seiner Infrastruktur an einen Dienstleister auslagern möchte? Das ist nicht nur aus Effizienz- und Kostengründen sinnvoll – schließlich profitieren Auftraggeber dann auch von der Expertise und Erfahrung des Dienstleisters und ihre IT muss sich nicht mit Kubernetes & Co. herumschlagen. Und die enge Abstimmung mit der Entwicklung? Schon die interne Einführung von DevOps stellt Unternehmen noch immer vor Probleme – schließlich sind damit nicht nur neue Methodiken und Best Practices verbunden, sondern tiefgreifende kulturelle Veränderungen.
Wichtig ist es in diesem Fall, einen Dienstleister zu wählen, der nicht nur die nötige Infrastruktur-Erfahrung mitbringt, sondern selbst DevOps praktiziert und – noch wichtiger – die eigene Branche mit ihren Prozessen und regulatorischen Anforderungen kennt und eng mit sämtlichen Stakeholdern zusammenarbeitet. Denn Infrastruktur-Projekte sind nicht einfach Technik-Projekte; sie betreffen letztlich die Funktions- und Wettbewerbsfähigkeit des ganzen Unternehmens. Das gilt nicht zuletzt für Unternehmen mit besonderen Anforderungen an Informations- und Datensicherheit, zum Beispiel KRITIS-Betreiber oder Gesundheitsdienstleister.
Ganzheitlicher Ansatz
Unsere Erfahrung mit komplexen containerbasierten Infrastrukturen zeigt zudem, dass solche Projekte ein ganzheitliches und interdisziplinäres Herangehen erfordern. Daher verfolgen wir einen Ansatz, der gleichermaßen funktionale und regulatorische Anforderungen und den Anspruch auf höchste Verfügbarkeit und Sicherheit verfolgt und dies mit dem Streben nach Professionalität, Effektivität, Agilität, Zukunfts- und Investitionssicherheit und damit Qualität verbindet. Zahlreiche erfolgreiche Infrastruktur-Projekte aller Größenordnungen zeigen uns, dass wir damit auf dem richtigen Weg sind. Zum Beispiel haben wir erst kürzlich eine Kooperationsplattform mit knapp 300 Containern auf Basis von Kubernetes für einen deutschlandweit aktiven Gesundheitsdienstleister mit 15 Gesellschaften geschaffen, die wir zur vollen Zufriedenheit des Kunden betreiben.
Sie wollen bei der Modernisierung Ihrer IT-Infrastruktur den nächsten Schritt gehen? Sprechen Sie uns an!
