Was ist DevOps Monitoring?

Arfan Sharif - Februar 16, 2023

Was ist DevOps-Überwachung?

In der Software-Entwicklung bezeichnet DevOps-Überwachung das Überwachen und Messen des Verhaltens und der Funktionalität von Systemen und Anwendungen, um Probleme frühzeitig erkennen und korrigieren zu können. Dazu gehört die Erfassung zahlreicher Informationen wie Prozessorauslastung, Speicherplatz und Reaktionszeiten von Anwendungen. Durch die frühzeitige Erkennung von Problemen mittels DevOps-Überwachung kann das IT-Team Ausfälle und Qualitätsverluste bei Services verhindern.

In vielerlei Hinsicht erinnert dies möglicherweise an die Art von Überwachung, die bei allen gut strukturierten IT-Abläufen zum Einsatz kommt. DevOps-Überwachung ist jedoch sehr viel umfassender. Bei der DevOps-Methode werden die Mitarbeiter durch kurze Kreisläufe der Planung, Entwicklung, Bereitstellung und Überprüfung geleitet. Um DevOps-Überwachung vollständig zu integrieren, muss daher eine kontinuierliche Überwachung erfolgen.

Was also ist kontinuierliche Überwachung? Kontinuierliche Überwachung bezeichnet die regelmäßige und sorgfältige Überprüfung von Systemen, Netzwerken und Daten auf Anzeichen von Leistungsverlusten. Sie erfolgt entweder manuell oder automatisch mithilfe von Software, die nach Schwachstellen scannt und Änderungen an Sicherheitseinstellungen verfolgt. Mit kontinuierlicher Überwachung sollen potenzielle Bedrohungen frühzeitig erkannt werden, um sie zu beheben, bevor sie zu einem Problem werden.

In diesem Artikel gehen wir auf die Motive und Anwendungsszenarien für DevOps-Überwachung ein. Anschließend erläutern wir, was eine leistungsstarke Plattform zur DevOps-Überwachung ausmacht.

Betrachten wir zunächst die Motive. Warum benötigen unsere Systeme DevOps-Überwachung?

Warum ist DevOps-Überwachung nötig?

Wenn Unternehmen eine DevOps-Kultur und die zugehörigen Praktiken – bessere Kommunikation und Zusammenarbeit durch Zusammenführen der Entwicklungs- und IT-Teams – implementieren, ist die Überwachung eine wichtige Methode, um Probleme in einem System zu erkennen, bevor diese zu einer Gefahr werden. Effektive Überwachung kann Sie dabei unterstützen, Bedenken hinsichtlich der Entwicklungseffizienz und Systemkomplexität auszuräumen:

  • Wir müssen Code schneller bereitstellen, doch wie stellen wir sicher, dass keine verborgenen Schwachstellen in unseren Code gelangen?
  • Unser System besteht aus so vielen beweglichen Teilen. Wie kann ich das alles im Auge behalten?
  • Das ganze Projekt fühlt sich manchmal wie eine undurchschaubare Black Box an. Wie kann ich mir die nötigen Einblicke verschaffen?

Wenn Sie Bereiche wie Load Balancing oder Sicherheit verbessern möchten oder wenn Sie Prozesstools für Dinge wie Rollback-Protokolle und selbstheilende Infrastruktur entwickeln wollen, benötigen Sie ein Überwachungssystem, das Ihnen Einblicke in Ihre Anwendungen und Infrastruktur ermöglicht. DevOps-Überwachung bietet Ihnen eine klare, leicht verständliche Lösung mit einer zentralen Übersicht, die sowohl den Prozess der Software-Bereitstellung als auch das fertige Software-Produkt verbessert.

Im Rahmen der Software-Bereitstellung können mithilfe der Überwachung Basislinien (und darauf aufbauende Verbesserungen) für wichtige Leistungsindikatoren festgelegt werden. Dazu zählen zum Beispiel folgende Metriken:

  • Häufigkeit von Bereitstellungen
  • Fehler bei der Bereitstellung
  • Anzahl der Code-Fehler
  • Zyklusdauer für Pull-Anfragen
  • Quote fehlgeschlagener Änderungen
  • Mittlere Betriebsdauer zwischen Ausfällen (Mean Time Between Failures, MTBF)
  • Mittlere Zeit für die Erkennung (Mean Time to Detect, MTTD) von Fehlern

Die durch Überwachung gewonnene Transparenz ermöglicht einen besseren Überblick und mehr Kontrolle über Ihre Abläufe, sodass Sie funktionsfähige und zuverlässige Anwendungen pünktlich ausliefern können.

Anwendungsszenarien für DevOps-Überwachung

Alle Phasen der DevOps-Produktion müssen einsehbar sein. Dazu gehört ein allgemeiner Überblick über den Zustand Ihrer Infrastruktur-Plattform und die dort ablaufenden Aktivitäten. Doch selbst die kleinsten Werteinheiten – bis hinunter zu einzelnen Code-Zeilen – müssen überprüft werden. Schauen wir uns nun die wichtigsten Funktionen dafür an.

Linten von Code

Tools zum Linten von Code analysieren den Stil sowie die Syntax Ihres Codes und suchen nach potenziellen Fehlern. Häufig prüfen sie zudem, ob Best Practices und ein Programmierungsstandard eingehalten werden. Durch Linten können Sie Problemstellen im Code aufspüren und beheben, bevor diese zu Laufzeitfehlern oder anderen Problemen führen. Zudem stellen Sie damit sicher, dass der Code sauber und einheitlich ist.

Git-Arbeitsabläufe

Codebasis-Konflikte ergeben sich, wenn zwei oder mehr Entwickler am selben Teil eines Projektes zur gleichen Zeit arbeiten wollen. Git besitzt mehrere Funktionen, die Ihnen die Verwaltung und Behebung von Konflikten (z. B. Commits und Rollbacks) erleichtern. Die Überprüfung der Git-Arbeitsabläufe auf Konflikte gewährleistet, dass Ihre Projekte in sich schlüssig und einheitlich bleiben.

CI-Protokolle (Continuous Integration)

Mithilfe von CI-Protokollen können Sie überprüfen, ob Ihre Code-Builds einwandfrei laufen oder ob Fehler bzw. Warnungen auftreten. Wenn es zu Fehlern kommt, müssen Sie diese untersuchen und beheben. Zudem können Sie durch die Überwachung der Protokolle potenzielle Probleme in der Code-Pipeline oder Codebasis erkennen, die angegangen werden müssen.

CD-Pipeline-Protokolle (Continuous Deployment)

Die Überwachung der CD-Protokolle kann wertvolle Einblicke in die Sicherheit und den Zustand der Pipeline liefern und bietet die Möglichkeit, nach den Ursachen fehlgeschlagener Bereitstellungen zu suchen und potenzielle Probleme zu beheben.

Änderungsprotokolle der Konfigurationsverwaltung

Die Änderungsprotokolle der Konfigurationsverwaltung gewähren Ihnen einen wertvollen Einblick in den Status Ihres Systems und in wichtige Änderungen. Durch die Überwachung der Protokolle können Sie manuelle und automatisierte Änderungen an Ihren Systemen nachverfolgen, nicht autorisierte Änderungen identifizieren und nach Fehlern suchen.

Protokolle der Infrastrukturbereitstellung

Bereitstellungsprotokolle überwachen die Bereitstellung neuer Stapel und dabei eventuell auftretende Fehler. Die Protokolle erleichtern die Fehlersuche bei Stapel-Bereitstellungen und die Identifizierung nicht autorisierter Änderungen an der Infrastruktur, die einen Fehlschlag verursachen könnten.

Code-Instrumentierung

Bei der Code-Instrumentierung wird Code zu einer Anwendung hinzugefügt, damit Informationen über ihr Verhalten erfasst werden können. Dadurch können Sie Stapelaufrufe verfolgen und Kontextwerte einsehen. Durch die Überwachung der Ausgaben der Code-Instrumentierung haben Sie die Möglichkeit, die Effektivität Ihrer DevOps-Praktiken zu bewerten und verbesserungswürdige Bereiche zu ermitteln. Zudem erleichtert dies die Bug-Suche und Tests.

Distributed Tracing

Distributed Tracing (dt. verteilte Rückverfolgung) ist entscheidend für die Überwachung und das Debugging von Mikroservice-Anwendungen. Durch das Verfahren können Sie nachvollziehen, wie Anwendungen miteinander kommunizieren (häufig über APIs) und somit Probleme leichter aufspüren und beheben. Zudem hilft Ihnen die Technik, Flaschenhälse zu identifizieren, um die Leistung von Anwendungen zu optimieren.

Application Performance Monitoring (APM)

APM-Tools überwachen das Verhalten und die Verfügbarkeit von Anwendungen. Dies umfasst die Überwachung von Reaktionszeiten, die Suche nach Fehlern, Real User Monitoring (RUM) zur Erfassung des Endbenutzer-Erlebnisses und vieles mehr. Durch die Nutzung von APM-Plattformen können Sie Problemstellen identifizieren und beheben, bevor diese den Rest des Systems beeinträchtigen.

Überwachung des API-Zugriffs

Durch die Überwachung und Speicherung von API-Zugriffen und dem zugehörigen Datenverkehr können Sie nicht autorisierte Zugriffe und mögliche DDoS-Angriffe verhindern.

Infrastrukturüberwachung

Bei der Infrastrukturüberwachung wird das Verhalten und die Verfügbarkeit von Rechnersystemen und Netzwerken verfolgt. Tools zur Infrastrukturüberwachung bieten Echtzeitinformationen über Metriken wie Prozessorauslastung, Speicherplatz, Arbeitsspeicher und Netzwerkdatenverkehr. Diese Tools helfen Ihnen, Ressourcenprobleme zu erkennen, bevor diese zu Ausfällen oder anderen Komplikationen führen.

Netzwerküberwachung

Bei der Netzwerküberwachung werden das Verhalten und die Verfügbarkeit eines Rechnernetzwerks und seiner einzelnen Komponenten überwacht. Netzwerkadministratoren nutzen entsprechende Tools, um Probleme im Netzwerk aufzuspüren und zu beheben. Außerdem werden dabei Flow-Protokolle zur Identifizierung verdächtiger Aktivitäten verwendet.

Synthetische Überwachung

Synthetische Überwachung bezeichnet Software-Tests, bei denen virtuelle Darstellungen realer Systeme und Komponenten genutzt werden. Bei der synthetischen Überwachung werden das Verhalten, die Funktionalität sowie die Zuverlässigkeit einzelner Systemkomponenten oder eines ganzen Systems getestet.

Worauf sollten Sie bei einer Plattform für DevOps-Überwachung achten?

Bei der Suche nach einer Lösung für DevOps-Überwachung sollten Sie nach einem Produkt Ausschau halten, das sich problemlos in Ihre Abläufe integrieren lässt. Das bedeutet, dass die Plattform in die Tools, die Ihr Team für die Entwicklungsabläufe nutzt, integriert werden kann. Dies umfasst beispielsweise folgende Bereiche:

  • Tools zur Anwendungsentwicklung
  • Versionskontrolle
  • CI/CD-Pipelines
  • Cloud-Services und -Infrastruktur
  • IaC-Systeme (Infrastructure-as-Code)
  • Ticketing- bzw. Issue-Tracking-Systeme
  • Einhaltung gesetzlicher Vorgaben
  • Tools für Zusammenarbeit und Kommunikation

Eine ideale Plattform zur DevOps-Überwachung bietet native Integrationen für Ihre Tools oder die Integration vertrauenswürdiger Drittanbieter-Lösungen.

Alle Teammitglieder sollten in der Lage sein, auf Echtzeitdaten der Überwachungsplattform zuzugreifen, um Flaschenhälse proaktiv erkennen und beseitigen zu können. Das Überwachungssystem sollte die vorhandenen Automatisierungen aufwerten (und definitiv nicht behindern), die Kommunikation verbessern und Sicherheitskontrollen bereitstellen.

Achten Sie zudem darauf, dass Berichte und Dashboards durchgehend benutzerfreundlich und verständlich sind. Die Darstellungen sollten Daten im größeren Kontext eines Systems präsentieren und Abhängigkeitsübersichten enthalten. Protokolldatenströme – lokal und in der Cloud – sollten sich in alle vorhandenen Sicherheitslösungen integrieren lassen und einfach zu bedienen sein. Außerdem sollte die Plattform historische Trends und Anomalien bieten sowie Ereignisse korrelieren können.

Vollständige Protokollierung und Einblicke – kostenlos

Falcon LogScale Community Edition (ehemals Humio) ist eine kostenlose moderne Log-Management-Plattform für die Cloud. Durch die Erfassung von Streaming-Daten erhalten Sie einen sofortigen Überblick über verteilte Systeme und können Zwischenfälle verhindern bzw. beheben.

Falcon LogScale Community Edition ist sofort kostenlos verfügbar und bietet folgende Vorteile:

  • Erfassung von bis zu 16 GB pro Tag
  • Speicherung bis zu 7 Tage
  • Keine Kreditkarte erforderlich
  • Unbegrenzter Zugriff ohne Testzeitraum
  • Indexlose Protokollierung, Echtzeit-Warnungen und Live-Dashboards
  • Zugriff auf unseren Marktplatz und zugehörige Pakete, einschließlich Leitfäden zur Entwicklung neuer Pakete
  • Lernen und Kooperation in einer aktiven Gemeinschaft

KOSTENLOS TESTEN

INFORMATIONEN ZUM AUTOR

Arfan Sharif ist Product Marketing Lead für das Observability-Portfolio bei CrowdStrike. Er verfügt über mehr als 15 Jahre Erfahrung bei der Umsetzung von Lösungen für Log-Management, ITOps, Beobachtbarkeit, Sicherheit und Benutzerunterstützung für Unternehmen wie Splunk, Genesys und Quest Software. Arfan Sharif hat einen Abschluss in Informatik bei der Buckinghamshire New University und blickt auf eine Karriere in den Bereichen Produktmarketing und Sales Engineering zurück.