Docker & Co. Wann lohnen sich Containeranwendungen?
Anbieter zum Thema
Containeranwendungen liegen bei vielen Unternehmen im Trend. Auch die Industrie profitiert von der ressourcenschonenden Verteilung von Rechenkapazitäten. Doch ein sicherer und stabiler Betrieb von Containerumgebungen bedarf optimal darauf abgestimmte Monitoring-Lösungen.

Docker und Orchestrierungslösungen wie Kubernetes haben einen Nerv in der agilen Softwareentwicklung getroffen: Containerlösungen sind technische Antworten auf einen seit Jahren erkennbaren Paradigmenwechsel in der IT. Dieser begann mit agilen Vorgehensmodellen in der Entwicklung, die stark auf Automatisierung und Integration setzen. Das Konzept von DevOps ermöglicht es Teams heute, mit Infrastructure-as-Code und Configuration-as-Code ihre Infrastruktur selbst aufzubauen und skalieren.
Es passt zusammen
Das industrielle Internet der Dinge erfordert eine enge Verzahnung von Diensten in der Produktion und in der IT. Ein Beispiel dafür sind Containeranwendungen, die als kleines Softwaremodul eine eng abgegrenzte Funktionalität bereitstellen. Statt einzelne Komponenten oder Bibliotheken zu aktualisieren, werden neue Image-Dateien erstellt und als Ganzes automatisiert sowie unabhängig von externen Komponenten und der Umgebung ausgerollt. Mehrere Containeranwendungen können sich ein Betriebssystem und Hardwareressourcen teilen, sind dabei aber voneinander und vom Gesamtsystem getrennt.
So ist sichergestellt, dass sich eine Containeranwendung unabhängig von der Ausführungsumgebung immer identisch verhält. Die als Open-Source-Projekt gestartete Docker-Laufzeitumgebung hat sich in der Zwischenzeit zum De-facto-Standard für Containerumgebungen entwickelt - obwohl Lösungen wie containerd oder CRI-O an Beliebtheit gewinnen.
Vorteile liegen auf der Hand
Der große Vorteil von Containeranwendungen ist die Bereitstellung von Rechenleistung innerhalb weniger Sekunden: Nach Download und Pull ist nur noch der Start über die Ausführung eines einzelnen Befehls notwendig. Auf diesem Weg lassen sich auch neue Versionen und Konfigurationen in Sekundenschnelle übernehmen. Ändert sich die Auslastung, kann die Last schnell auf mehrere Containeranwendungen verteilt werden. Weitere Vorteile sind die Verwendung identischer Hardwareressourcen bei einem parallelen Einsatz dieser und die Unterstützung verschiedener Betriebssysteme sowie hybrider Architekturen.
:quality(80)/images.vogel.de/vogelonline/bdb/1931900/1931999/original.jpg)
Umzug in die Cloud
Nach der Pandemie ist vor der Datenbank-Systemumstellung
Mit der Aufspaltung umfangreicher IT-Projekte in kleinere Arbeitspakete, die in Sprints umgesetzt werden, geht eine Aufspaltung der IT-Strukturen einher. Statt monolithischer Anwendungen wird an Mikroservices gearbeitet, die in Orchestrierungsumgebungen zu einer Gesamtanwendung zusammengestellt werden. Die Vorteile liegen nahe: Anwendungstests können bereits vor der Bereitstellung durchgeführt werden, und zwar in einer Umgebung, die sich nicht von der Produktivumgebung unterscheidet. In Multi-Cloud-Umgebungen lassen sich Container mit geringen Aufwänden verschieben. Potenziell kann jeder Service in einem eigenen Container laufen. Für den produktiven Einsatz bieten Containeranwendungen zudem den Vorteil, dass sie leicht zentral administriert werden können.
Wo Licht ist, da ist auch Schatten
Gerade die Fragmentierung der Infrastruktur wirft Fragen in Hinblick auf die IT-Sicherheit auf. Aktuelle Infrastrukturen sind ein Geflecht aus Containern, Cloud-Umgebungen und Netzwerkverbindungen. Damit werden sowohl die Überprüfung auf Schwachstellen und das Schließen von Sicherheitslücken deutlich anspruchsvoller. Potenzielle Bedrohungen gegenüber jedem einzelnen Container können stets Auswirkungen auf die Containeranwendungen haben, die dieselben Ressourcen nutzen. Dazu zählen:
- DDoS-Attacken auf Anwendungsebene und Cross-Site-Scripting-Angriffe auf öffentlich zugängliche Container.
- Eine Kompromittierung des Containers, die bereits im Entwicklungsprozess beginnen kann. Viel zu oft gehen Entwickler davon aus, dass die benutzten Code-Libraries sicher sind. Doch gerade Libraries von Drittanbietenden können sich als besonders riskant erweisen. Das gilt auch für externe Images, die niemals ungeprüft genutzt werden sollten.
- Container-Breakouts, das heißt die Isolationsschicht der Container wird überwunden. Damit besteht die Gefahr, dass ein nicht autorisierter Zugriff auf andere Container oder das Host-System erfolgt.
- Schwachstellen im Framework selbst, also Sicherheitslücken in der Docker-Umgebung oder Orchestrierungslösungen.
:quality(80)/p7i.vogel.de/wcms/79/87/7987428de2974090db11122fa26e2693/0104722553.jpeg)
IoT-Security
Kubernetes-Risiken: Hardware, API-Server und Container schützen
Als unmittelbare Folge dieser Schwachstellen könnten unbemerkt Mechanismen eingeschleust werden. Diese können dann den Container dazu zwingen, besonders viele Systemressourcen an sich zu ziehen und so die Performance anderer Container oder Umgebungen zu beeinträchtigen. Zudem können Lücken in den Kommunikationsprotokollen auftreten, die für den Datenaustausch verwendet werden. Erschwert wird das Aufspüren und Schließen von Schwachstellen im Umfeld von Containern dadurch, dass diese oft eine begrenzte Lebenszeit haben.
Anforderungen an das Monitoring
Das Schließen von Sicherheitslücken ist lediglich ein Aspekt bei der Nutzung der Containerisierung. Es geht nicht nur um sichere, sondern auch um funktionierende und belastbare Anwendungen. Leistung und Verfügbarkeit aller Anwendungen innerhalb eines Containers müssen genauso geprüft werden wie der CPU- und Speicherverbrauch in Hinblick auf einen Maximalwert. Anforderungsraten, Datendurchsatz und Fehlerquote liefern dabei wichtige Informationen über die Gesundheit einzelner Container respektive der Gesamtanwendung.
Klassisches Application-Performance-Monitoring oder Infrastruktur-Monitoring stoßen in einer zunehmend komplexen IT-Struktur zwangsläufig an ihre Grenzen. Denn je fragmentierter die gesamte Umgebung, umso schwieriger wird eine rein manuelle Überwachung, um operative Kennzahlen und Werte, die die Ressourcen betreffen, zu ermitteln. Aufgrund der gewählten Struktur ist typischerweise eine ganze Reihe von Dingen parallel im Auge zu behalten: Die Container selbst, die jeweilige Cloud-Plattform, einzelne Services und auch die Kubernetes-Umgebung, um etwa über fehlgeschlagene Starts oder Pod-Neustarts Informationen zu erhalten.
Die richtigen Werkzeuge
Ein sicherer und stabiler Betrieb von Container-Umgebungen in der Industrie wird am besten durch optimal darauf abgestimmte Lösungen für das Monitoring gewährleistet. Damit darf und sollte schon im Rahmen des Entwicklungsprozesses begonnen werden. Denn das Monitoring kann bereits wichtige Ergebnisse liefern, um Schwachstellen in der Performance der Gesamtanwendung aufzudecken.
Eine umfassende Überwachungslösung für containerisierte Umgebungen berücksichtigt zudem Sicherheitsaspekte von vornherein mit. Static Application Security Testing (kurz: SAST) kann bereits in einer frühen Phase, in welcher der Code noch nicht vollständig ausführbar sein muss, durchgeführt werden, um Risiken in Containern und den verwendeten Libraries zu entdecken. Dynamic Application Security Testing verhindert das Deployment von anfälligem Code.
Gerade weil in komplexen Umgebungen eine Vielzahl von Containern und Services mit der damit korrespondierenden Zahl von Metriken zu überwachen sind, muss das Monitoring übersichtlich sein und über Automatisierungen verfügen, damit DevOps- sowie DevSecOps-Teams potenzielle Probleme rasch erkennen. Nur so können sie rechtzeitig handeln, um größere Ausfälle oder gar Stillstände zu verhindern. Methoden des maschinellen Lernens leisten im Monitoring gute Dienste, weil sie nicht ausschließlich Abweichungen gegenüber vorher definierten Schwellenwerten bemerken, die ein gesundes System beschreiben, sondern in der Lage sind, auf Basis eigener Prognosen auf mögliche Probleme hinweisen. Das können bereits sich verstärkende Latenzen bei Datenbankabfragen sein, die einem menschlichen Team nicht aufgefallen wären. Damit kann sichergestellt werden, dass die immer häufiger verwendeten Containeranwendungen sicher und stabil betrieben werden können.
(ID:48628665)