Cloud-Dienste sind in vielen Unternehmen allgegenwärtig. Laut einer Umfrage der Cloud Native Computing Foundation (CNCF) aus dem Jahr 2022 nutzen 79 % der Unternehmen für die Administration ihrer Cloud-Anwendungen Kubernetes (K8s) [1]. Die Einführung dieses intelligenten Werkzeuges stellt viele Organisationen allerdings vor neue Herausforderungen. Vor allem werden neue Tools und Prozesse für die Verwaltung und Überwachung der Container-Ökosysteme benötigt.
Kubernetes ist ein Werkzeug zur Orchestrierung containerbasierter Anwendungen, mit dem sich u. a. die Bereitstellung von Containern, die Verteilung von Workloads und die Verwaltung der Ressourcen automatisieren lässt. Das K8s-Universum ist inzwischen eine der größten Open-Source-Communities; es gibt unzählige Erweiterungen und Lösungen für das Tool. Entsprechend hoch ist die Lernkurve bei Anwendern von Kubernetes, um die Vielfalt und damit verbundenen Risiken zu bewältigen. Drei Techniken sind für die Reaktion auf Vorfälle von unschätzbarem Wert:
- die Implementierung eines Service-Ownership-Ansatzes
- die Automatisierung von Prozessen
- die Nutzung einer Operations-Cloud.
Sie reduzieren die Komplexität für die Ersthelfer und entlasten ohnehin schon überarbeitete IT-Operations-Management-Teams (ITOM-Teams).
Service Ownership zur Problemerkennung
Wie bei praktisch jeder Software ist es unvermeidlich, dass auch mit Kubernetes verwaltete Anwendungen ausfallen oder nicht die erwünschte Leistung erreichen. Aufgrund der Komplexität von K8s fordern viele Incident-Response-Teams oft und frühzeitig die Unterstützung von Fachkräften an. Mit dem Service-Ownership-Ansatz werden die Entwickler und Ingenieure hinter einer Kubernetes-Umgebung erfasst und dokumentiert. Bei einem Incident können mit dem Service-Ownership-Ansatz gezielt geeignete Experten zur Behebung des Problems herangezogen werden. Durch die Verankerung dieser »Code it, Own It«-Mentalität in der Kubernetes-Verwaltung erhalten Mitarbeiter, die sich mit bestimmten Anwendungen oder Diensten weniger gut auskennen, immer sofort einen kompetenten Ansprechpartner.
Ein Service-Ownership-Ansatz bringt weitere Vorteile für das gesamte Unternehmen mit sich: Durch die klare Zuweisung von Verantwortlichkeiten können Probleme effektiver und effizienter gelöst werden, wodurch deutlich weniger Zeit für die Suche nach Zuständigkeiten aufgewendet wird. Dies reduziert die für Fehlersuche und Analyse eines Problems benötigte Anzahl an Mitarbeitenden. In Verbindung mit dem Fachwissen des Service-Verantwortlichen verkürzt sich die mittlere Zeit bis zur Lösung von Problemen (MTTR) erheblich. Auch trägt die Serviceverantwortung zur Qualitätskontrolle bei. Entwickler erhalten einen besseren Einblick in die Funktionsweise ihres Codes in der Produktion. Die Stabilität und Leistungsfähigkeit der Anwendungen erhöhen sich. Das verbessert die Erfahrung aller Beteiligten – auch bei den Kunden.
Mit der Einführung des Service Ownership minimiert sich die Komplexität im Umgang mit Kubernetes-Störungen. Allerdings erfordert dies einen Kulturwandel und eine hohe Akzeptanz innerhalb des Unternehmens. Die Verantwortlichen müssen die Silos aufbrechen, die Entwickler von den Operations- und Incident-Teams trennen.
Prozessautomatisierung für eine schnelle Reaktion
Kommt es in einer Kubernetes-Umgebung zu einem Zwischenfall, fehlt vielen Ersthelfern das Fachwissen oder die Zeit, um die Ursache eines Problems zu verstehen. Sie müssen für die Diagnose oft Ingenieure und Entwickler hinzuziehen.
Die Diagnosephase kann bis zu 85 % der Zeit bei der Reaktion auf einen Incident in Anspruch nehmen und ist damit meist der langwierigste Teil. Für die Diagnose müssen allerdings sehr oft standardisierte und wiederholbare Schritte wie CPU- und Speicherprüfungen oder die Überprüfung der letzten Code-Commits durchgeführt werden. Der Einsatz von Spezialisten für diese Aufgaben stellt einen erheblichen Kostenfaktor dar. Mit jeder Eskalation können die Ingenieure weniger Zeit für die Verbesserung von Services oder Bereitstellung von Innovationen für ein Unternehmen aufwenden. Die Prozessautomatisierung ist ideal für standardisierte und in hohem Maße wiederholbare Diagnose-Workflows.
Bei der Prozessautomatisierung wandeln die Teams die Diagnose-Workflows in sogenannte Runbooks um. Mit diesen Templates können Aufgaben wie die Diagnose von Ressourcen mit einfachen Kommandos gestartet und automatisiert durchgeführt werden. Einmal entwickelt, können Bibliotheken mit definierten Prozess-Runbooks den Incident-Response-Teams zur Verfügung gestellt werden. Ersthelfer können die Aufgabe dann auslösen, ohne technische Unterstützung anfordern zu müssen. Neben der Diagnose lassen sich auch Abhilfemaßnahmen automatisieren, zum Beispiel sich wiederholende Aufgaben wie Server-Neustarts oder das Löschen des Speicher-Caches.
Durch die Anwendung von automatisierten Prozessen sind Incident-Response-Teams in der Lage, in einer Kubernetes-Umgebung eine höhere Anzahl an Vorfällen zu bearbeiten und gleichzeitig die Anzahl der erforderlichen Eingriffe durch Ingenieure zu reduzieren. Es ergeben sich dadurch kürzere Lösungszeiten, weniger störende Eskalationen und mehr Zeit, welche die Ingenieur-Teams in die Entwicklung von Innovationen investieren können.
Nutzung einer Operations-Cloud
Bei der Verwaltung von Kubernetes-Anwendungen und -Umgebungen ist es wichtig, effektive Tools zur schnellen Problemlösung zur Verfügung zu stellen. Eine entscheidende Rolle spielen dabei die Service Ownership und Process Ownership: Diese helfen, robuste Prozesse zur Behebung von Kubernetes-Problemen zu gewährleisten und reduzieren die Komplexität bei der Erkennung und Eskalation von Kubernetes-Problemen Das verringert den Zeitaufwand für manuelle und wiederholbare Arbeitsabläufe.
Sowohl Service Ownership als auch Prozessautomatisierung eignen sich für Low-Code/No-Code-Lösungen zur Diagnose und Behebung von Kubernetes-Vorfällen auf Knopfdruck. Damit beides funktioniert, müssen sie jedoch als Teil einer Operations-Cloud eingesetzt werden. Kubernetes-Umgebungen sind von Natur aus schnellen Veränderungen unterworfen. Mit der kontinuierlichen Aktualisierung der Operations-Cloud können Änderungen hinsichtlich Service-Ownership und Best Practices nahezu in Echtzeit berücksichtigt werden. Zur Systematisierung von Prozessen rund um das Softwaremanagement und die Reaktion auf Vorfälle ist eine Operations-Cloud daher unverzichtbar.
Fazit
Service Ownership, Prozessautomatisierung und die Integration in eine Operations-Cloud unterstützen die Teams dabei, Incidents einzuordnen und zu priorisieren. Probleme können schneller gelöst und wertvolle Entwicklerzeit gespart werden. Auf diese Weise können Unternehmen die Zuverlässigkeit und Konsistenz ihrer Kubernetes-Ökosysteme und -Anwendungen gewährleisten. Das sorgt für zufriedenere Mitarbeiter und Kunden.
Mandi Walls, DevOps Advocate bei PagerDuty
Mandi Walls ist DevOps-Advocate bei PagerDuty. Dort unterstützt sie Technologieunternehmen dabei, ihre Effizienz durch moderne IT-Praktiken bei ungeplanten IT-Vorfälle zu steigern. Sie spricht regelmäßig auf technischen Konferenzen und ist Autorin des Whitepapers »Building a DevOps Culture«, das von O’Reilly veröffentlicht wurde. Ihr Interesse gilt der Entwicklung neuer Tools und Workflows, die den Betrieb großer und komplexer IT-Systeme vereinfachen.
[1] https://www.cncf.io/reports/cncf-annual-survey-2022/