Sechs Faktoren für eine fortschrittliche Container-Überwachung
16. Oktober 2023
Lesedauer: 4 Minuten

Unternehmen setzen zunehmend auf Containerisierung, um eine besser skalierbare, effizientere und flexiblere Infrastruktur zu schaffen. Bei der Containerisierung wird der Softwarecode mit den Bibliotheken und Abhängigkeiten verpackt, die für die Ausführung des Codes erforderlich sind. So entsteht ein in sich geschlossener Code, der auf jeder Infrastruktur ausgeführt werden kann, z. B. auf einem Desktop, einer lokalen IT oder einer cloudnativen Infrastruktur.

Container haben an Bedeutung gewonnen, da Unternehmen portable und ressourceneffiziente Technologien benötigen. Vor diesem Hintergrund sind sie mittlerweile die eigentlichen Recheneinheiten moderner cloudnativer Anwendungen. Gartner prognostiziert, dass bis 2026 ganze 90 % der globalen Unternehmen containerisierte Anwendungen nutzen werden und jede fünfte Anwendung in Containern ausgeführt wird, wie CIO berichtete.

Container erfreuen sich seit der Einführung von Docker im Jahr 2013, einer Open-Source-Plattform für die Erstellung, Bereitstellung und Verwaltung von Containeranwendungen, zunehmender Beliebtheit und Verbreitung.

So funktionieren Container

Container nutzen die Virtualisierung des Betriebssystems (OS) und nutzen den OS-Kernel (z. B. Linux-Namespaces und cgroups, Windows-Silos und Jobobjekte), um Prozesse zu isolieren und die Menge an CPU sowie Arbeits- und Festplattenspeicher zu steuern, auf die diese Prozesse zugreifen können.

Die schnelle Entwicklung von Containern ermöglicht es Unternehmen, neue geschäftliche Serviceleistungen schnell zu erstellen, bereitzustellen und zu skalieren. Im Gegensatz zu Virtual Machines nutzen sie die Funktionen und Ressourcen des Host-Betriebssystems, anstatt für jede Instanz ein Gastbetriebssystem zu benötigen.

Sie haben an Bedeutung gewonnen, da Unternehmen moderne Entwicklungstechniken wie Microservices, Serverless und DevOps einsetzen, die alle regelmäßige Code-Bereitstellungen in kleinen Schritten nutzen.

Microservice-Architekturen unterteilen eine Anwendung in kleine, autonome Dienste. Container und Microservices sind unterschiedliche Konzepte und können separat verwendet werden, obwohl es üblich ist, Microservices in einem Container bereitzustellen. Containerisierung hilft DevOps-Teams bei der Vermeidung von Komplikationen, die beim Übergang von Software vom Test- in den Produktionsmodus auftreten.

Warum Container-Überwachung wichtig ist

Unternehmen müssen wie bei jeder anderen Software auch den Zustand ihrer containerisierten Anwendungen überwachen und Leistungsprobleme nachverfolgen. Durch die Aufrechterhaltung der Containersichtbarkeit und die Nachverfolgung umfassender Containermetriken können Unternehmen ihre Kosten senken und ihre Software-Lebenszyklen über verschiedene Anwendungsfälle hinweg besser verwalten.

Die Containerüberwachung, ein Aspekt der Anwendungsüberwachung und des Application Performance Management (APM), bietet einer Organisation mehrere Vorteile, darunter die Möglichkeit der Verfolgung von Leistungskennzahlen und der Förderung der Containereffizienz, die Reduzierung der mittleren Reparaturzeit (Mean Time to Repair, MTTR) und die Erhöhung der Zuverlässigkeit von Workloads. Um dies zu erreichen, können Unternehmen Lösungen zur Containerüberwachung einsetzen, die ihnen Echtzeit-Einblicke in die Containerleistung bieten. Die Containerüberwachung trägt zur Observability bei und stellt letztlich die Verfügbarkeit von IT-Diensten sicher.

Es ist unerlässlich, die Leistung der gesamten Anwendung nachverfolgen zu können und Einblick in jede einzelne Komponente und Ebene zu haben, damit die Teams ein vollständiges Bild der gesamten containerisierten Umgebung erhalten.

Sechs Möglichkeiten, wie Unternehmen die Leistung und den Zustand von Containern einrichten, überwachen und optimieren

1. Definieren von Monitoring-KPIs

Eine umfassende Strategie zur Containerüberwachung erfordert die Festlegung von KPIs zu Beginn, um sicherzustellen, dass sie mit den Geschäftszielen übereinstimmen. Unternehmen können unterschiedliche Bedürfnisse und Ziele in Bezug auf ihre Containerstrategie haben und müssen die Messwerte an diesen Zielen ausrichten.

Bei den einzelnen KPIs gibt es drei Kernbereiche, auf die man sich konzentrieren sollte:

  • Leistungsüberwachung: Die Überwachung der Containerleistung ist wichtig, sowohl auf Clusterebene als auch innerhalb der Containerlaufzeit. Unternehmen sollten sich auf KPIs wie Antwortzeiten und Netzwerklatenz konzentrieren, um sicherzustellen, dass Endbenutzer positive Erfahrungen mit den Anwendungen und Webdiensten eines Unternehmens machen.
  • Überwachung der Ressourcenauslastung: Container können erhebliche Ressourcen erfordern. Aus diesem Grund muss durch die Überwachung von KPIs wie CPU-Auslastung, Festplatten- und Speicherplatznutzung kontrolliert werden, wie viele Computerressourcen jeder Container nutzt. Auf diese Weise können Unternehmen potenzielle Vorfälle beheben, bevor sie zu größeren Problemen werden, z. B. durch Hinzufügen zusätzlicher Knoten, bevor ein Container die CPU- oder Speicherkapazität erschöpft.
  • Sicherheits- und Compliance-Überwachung: Unternehmen sollten der Sicherheitsüberwachung in ihrer Containerumgebung Priorität einräumen und sich dabei auf Angriffsversuche auf Bereiche wie Container-Images und Authentifizierungen konzentrieren. Die Containerüberwachung kann Schwachstellen-Scans von Container-Images und Laufzeitumgebungen, MFA-Prozentsätze der Benutzer, versuchte Firewall-Verletzungen und Laufzeitanomalien liefern, die zu KPIs wie Schwachstellenbewertungsergebnissen, Reaktionszeit bei Vorfällen und Konformitätsstatus beitragen.

2. Identifizieren notwendiger Abhängigkeiten und Integrationen

Tools zur Container-Überwachung sollten sich mit Open-Source-Containerisierungstools wie Prometheus, JMX und statsD integrieren lassen, damit Unternehmen einen besseren Einblick in ihre Umgebungen erhalten. Darüber hinaus sollten diese Tools Abhängigkeiten wie Host, Betriebssystem, Java Virtual Machine (JVM), Cassandra-Knoten und MySQL transparent machen. Die IBM® Instana Observability-Plattform verwendet ein dynamisches Diagramm, um die Anwendungen eines Unternehmens zu modellieren und ein Verständnis für alle physischen und logischen Abhängigkeiten von Komponenten zu schaffen.

3. Erstellen und Anpassen von Dashboards

Dashboards sind ein entscheidender Bestandteil der Infrastrukturüberwachung und der Beurteilung des Zustands von Containern. Die Mitarbeiter müssen sehen können, was in ihrer Containerumgebung vor sich geht, damit sie im Falle eines Problems eingreifen können.

Moderne Container-Überwachungstools erstellen Dashboards, auf denen DevOps-Teams Container-Daten in aggregierter Form und in einzelnen Visualisierungen, die spezifische Daten anzeigen, einsehen können. Instana bietet durch das dynamische Diagramm und den Kontextleitfaden Transparenz mit Kontext. Diese Funktionen helfen Benutzern, die Beziehungen zwischen Anwendungen zu erkennen, Probleme zu diagnostizieren und ihre Auswirkungen zu bestimmen.

4. Integrieren mit Container-Orchestrierung:

Viele Unternehmen nutzen die Container-Orchestrierung, bei der die Bereitstellung, der Einsatz und die Verwaltung von containerisierten Anwendungen durch Open-Source-Tools wie Kubernetes automatisiert werden. Containerumgebungen von Kubernetes nutzen Automatisierung, um Aufgaben wie Bereitstellung, Lastverteilung und Skalierung ohne menschliches Eingreifen durchzuführen. Die Überwachung bleibt jedoch von entscheidender Bedeutung, damit Unternehmen einen Überblick über jeden Kubernetes-Cluster haben. Container erzeugen erhebliche Mengen an Leistungsdaten, die zur Verbesserung des Orchestrierungsprozesses beitragen können, wobei die Überwachung die ordnungsgemäße Funktionsweise der Orchestrierung sicherstellt.

5. Automatisieren von Workflows:

Die Automatisierung ist ein wichtiger Bestandteil der Containerüberwachung. Durch die Einrichtung spezifischer automatisierter Workflows wird die Belastung der DevOps-Teams minimiert. Gleichzeitig wird der Zustand und die Effizienz der Container durch die Minimierung menschlicher Fehler verbessert, während das System schneller eingreifen kann, als es einem Menschen möglich wäre.

6. Erstellen von Benachrichtigungen über Leistungsvorfälle:

Funktionen zur Anomalieerkennung sind erforderlich, um eine schnelle Diagnose und Lösung von Leistungsproblemen in Containern zu ermöglichen. Eine Lösung zur Containerüberwachung muss auftretende Vorfälle protokollieren, damit DevOps-Teams und Site Reliability Engineers diese einzeln angehen und Fehler beheben oder feststellen können, ob sie Teil eines Problems sind, das eine Ursachenanalyse und eine umfassendere Reaktion erfordert.

IBM und Container-Überwachung

Da Unternehmen zunehmend auf Containerisierung setzen, wird die Entwicklung zuverlässiger und disziplinierter Verfahren zur Containerüberwachung noch wichtiger, um die Betriebszeit, eine hervorragende Servicebereitstellung und eine verbesserte Benutzererfahrung sicherzustellen.

In containerisierten Umgebungen sind Transparenz und Überwachung nicht nur für die Aufrechterhaltung des Zustands von Anwendungen entscheidend, sondern auch für die Maximierung von Agilität und Effizienz – und damit für die volle Rentabilität Ihrer Investitionen in containerisierte Anwendungen.

Die Container-Überwachung mit IBM® Instana Observability geht auf diese Herausforderungen ein und bietet kontinuierliche automatische Transparenz mit vollständigem Kontext für alle technischen Schichten – die Hosts, die Container, die Middleware und die laufenden Microservices. Überwachungs-Dashboards ermöglichen die automatische Beobachtung jedes Containers, des gesamten Technologie-Stacks, der in ihm läuft, und der Anwendungen, die auf ihm laufen.

 
Autor
Keith O'Brien Writer, IBM Consulting