Auf einen Blick: Überwachung und Telemetrie sind in DevOps entscheidend, um Anwendungsleistung und Systemzustand zu bewerten und die Erkennung von Nutzungsmustern und Fehlern zu erleichtern und so Verfügbarkeit und Zuverlässigkeit sicherzustellen.
- Das Monitoring sammelt Protokolle und Metrikdaten während des gesamten Softwareentwicklungslebenszyklus.
- Telemetrie liefert spezifische Messdaten für die Echtzeitanalyse.
DevOps ist ein datengetriebenes Softwareentwicklungs-Lifecycle (SDLC)-Framework. DevOps-Ingenieure analysieren Logs und Metrikdaten, die über alle Softwarekomponenten und die zugrunde liegende Hardwareinfrastruktur generiert werden. Dies hilft ihnen, verschiedene Bereiche zu verstehen:
- Anwendungs- und Systemleistung
- Nutzungsmuster
- Bugs
- Sicherheits- und regulatorische Fragen
- Verbesserungsmöglichkeiten
Umfangreiche Anwendungsüberwachung und Telemetrie sind erforderlich, bevor eine Anwendung die begehrte Service Level Agreement (SLA)-Uptime von fünf 9ern oder mehr erreicht: mindestens 99,999 % der Zeit verfügbar. Aber was genau ist Monitoring und Telemetrie und wie passt sie in eine DevOps-Umgebung? Lassen Sie uns darüber sprechen.
Was ist Überwachung?
Monitoring ist eine gängige IT-Praxis. Im Kontext von DevOps umfasst Monitoring den Prozess, Logs und Metrikdaten zu sammeln, um Leistung und Compliance in jeder Phase der SDLC-Pipeline zu beobachten und zu erkennen. Monitoring umfasst Werkzeuge, die programmiert werden können, um
- Beschaffung spezifischer Log-Datenströme
- Erstellen Sie eine intuitive visuelle Darstellung der Leistung der Metriken
- Erstellen Sie Benachrichtigungen basierend auf festgelegten Kriterien
Die Ziele des Monitorings in DevOps umfassen:
- Verbesserung der Sichtbarkeit und Kontrolle von App-Komponenten und IT-Infrastrukturoperationen. Anwendungen reichen von Cybersicherheit bis zur Ressourcenoptimierung. Beispielsweise können Überwachungstools Vorfälle von Netzwerkpannen und übermäßigem Netzwerkverkehr an einem bestimmten Knoten warnen.
- Überwachen Sie Leistungsprobleme der Anwendung, identifizieren Sie Fehler und verstehen, wie sich bestimmte App-Komponenten in Produktions- und Testumgebungen verhalten. Nach der Einführung warnen Überwachungstools auf mehrere Kennzahlen, um Ressourcenauslastung und Workload-Verteilung zu verfolgen. Mit diesen Informationen können Ingenieure Ressourcen zuweisen, um dynamischen Datenverkehr und Workload-Anforderungen zu berücksichtigen.
- Verstehen Sie das Verhalten von Nutzern und Markt. Diese Informationen können Ingenieuren helfen, technische Entscheidungen zu treffen, wie das Hinzufügen einer bestimmten Funktion, das Entfernen eines Buttons oder Investitionen in Cloud-Ressourcen, um die SLA-Leistung weiter zu verbessern. Proaktive Entscheidungsfindung in dieser Hinsicht hilft Organisationen, ihren Marktanteil im wettbewerbsintensiven Geschäftsumfeld zu halten und auszubauen.
(Untersuchen Sie kontinuierliche Lieferkennzahlen, einschließlich Monitoring.)
Was ist Telemetrie?
Telemetrie ist eine Teilmenge der Überwachung und bezeichnet den Mechanismus zur Darstellung der von einem Überwachungstool bereitgestellten Messdaten. Telemetrie kann als Agenten betrachtet werden, die programmiert werden können, um spezifische Überwachungsdaten zu extrahieren, wie zum Beispiel:
- Zeitreiheninformationen mit hohem Volumen zur Ressourcennutzung
- Echtzeit-Alarmierung für spezifische Vorfälle
DevOps-Überwachung vs. Telemetrie
Betrachten wir den Fall des Motorsports, bei dem Fans Kennzahlen wie Höchstgeschwindigkeit, G-Kräfte, Rundenzeiten, Rennposition und andere Informationen sehen, die auf TV-Bildschirmen angezeigt werden. Diese Messanzeigen beziehen sich auf die Telemetrie. Umgekehrt wird der Prozess der Installation von Sensoren, der Datenextrahierung und der Bereitstellung einer begrenzten Menge an Metrikinformationen auf Fernsehern in seiner Gesamtheit als Monitoring bezeichnet. Im Kontext von DevOps beziehen sich einige der am häufigsten gemessenen Kennzahlen auf die Gesundheit und Leistung einer Anwendung, und verschiedene entsprechende Kennzahlen sind immer auf dem Dashboard sichtbar.
Überwachungsherausforderungen
Bevor wir die verschiedenen DevOps-Anwendungsfälle der Telemetrie besprechen, lassen Sie uns die häufigsten Überwachungsherausforderungen für DevOps-Organisationen vorstellen:
- Das Betriebspersonal investiert erhebliche Zeit und Ressourcen, um Leistungsprobleme in der Infrastruktur und den Apps zu finden.
- Entwickler unterbrechen häufig ihre Entwicklungsarbeit, um neue Fehler und Probleme zu beheben, die bereits in der Produktionsphase entdeckt wurden.
- Der Ansatz des schnellen Release-Zyklus macht Apps anfällig für Leistungsprobleme – gründliche Tests erfordern Zeit und Ressourcen, die aus geschäftlicher Sicht möglicherweise nicht gerechtfertigt sind.
- Das Bereitstellungsverfahren ist komplex: Ingenieure müssen mehrere Entwicklungsarbeitsströme innerhalb von Microservices, Multi-Cloud und hybrider IT synchronisieren und koordinieren
- Anomalien sind ein Zeichen potenzieller aufkommender Probleme. Es ist wichtig, die Schäden zu identifizieren und einzudämmen, bevor die Auswirkungen realisiert werden und sich auf die weltweite Nutzerbasis ausbreiten.
- Sicherheits- und regulatorische Einschränkungen erfordern von Organisationen, tiefgreifende Kontrolle auszuüben und Transparenz über die Hardwareressourcen zu behalten, die sensible Benutzerdaten und Anwendungen betreiben. Dies ist eine Herausforderung, insbesondere wenn die zugrunde liegende Infrastruktur ein Cloud-Netzwerk ist, das von einem Drittanbieter außerhalb des Hauses betrieben wird und nur begrenzte Logs, Daten, Metriken und Einblicke in die Hardwarekomponenten bereitstellen kann.
Anwendungsfälle für Überwachung und Telemetrie
Um diese Herausforderungen zu bewältigen, verwenden DevOps-Teams verschiedene Überwachungstools, um Muster sorgfältig zu identifizieren und zu verstehen, die die zukünftige Leistung einer App, eines Dienstes oder der zugrundeliegenden Infrastruktur vorhersagen könnten. Zu den häufigsten Anwendungsfällen der Telemetrie in DevOps gehören folgende Kennzahlen und Anwendungsfälle:
- Health of Build-Releases aus dem Quellcode
- Loginformationen aus Artefakt-Repositorien
- Kontinuierliche Integrationsfehler am CI-Server
- Testleistung in verschiedenen Phasen der SDLC-Pipeline
- Nutzerbindung und Sichtbarkeit für bestimmte App-Funktionen
- Verfügbarkeits- und Leistungskennzahlen wie MTTF, MTTD und MTTR
- Anomalieerkennung und Netzwerkverkehrsrouten.
Datenanalyse ist notwendig
Die Analyse folgt auf das Monitoring. Telemetrie umfasst nicht zwangsläufig analysierte und verarbeitete Log- oder Metrikinformationen. Die Entscheidungsfindung auf Basis der Telemetrie von Logmetriken erfordert eine umfangreiche Analyse verschiedener KPIs und kann mit den Überwachungssystemen integriert werden, um bei Bedarf automatisierte Aktionen auszulösen.
Verwandte Literatur
- BMC DevOps Blog
- Stand der IT-Überwachung: Eine Berichtsübersicht
- Die Wahl von wichtigen IT-Kennzahlen
- DevOps-Kennzahlen & KPIs
- Überwachung von Microservices mit Spring Boot Actuator & AspectJ
- Wie Workflow-Orchestrierung die Anwendungsentwicklung und -überwachung verbessert
DevOps-Leitfaden
- Was ist DevOps? Eine umfassende Einführung
- Eine kurze Geschichte von DevOps
- Einführung in die DevOps-Architektur
- Automatisierung in DevOps: Warum und wie man DevOps-Praktiken automatisiert
- Was ist CI/CD? Kontinuierliche Integration und kontinuierliche Lieferung erklärt
- Wie man eine CI/CD-Pipeline mit Jenkins aufbaut
- DevOps-Metriken zur Optimierung von CI/CD-Pipelines
- Kontinuierliche Liefermetriken
- Ist Continuous Integration in Continuous Deployment ein Fortschritt – oder nicht?
- Unterschiede zwischen Continuous Integration (CI), Delivery (CD) und Deployment
- Quellcode und Versionskontrolle in DevOps
- Was ist kontinuierliche Testung?
- Testautomatisierungs-Frameworks: Der ultimative Leitfaden
- Release Management in DevOps
- Erklärt: Monitoring & Telemetrie in DevOps
- Anwendungs-Leistungsmanagement in DevOps
- DevOps-Orchestrierung im SDLC
- Einführung in Datenbank-DevOps
- Die Rolle der Microservices in DevOps
- Die Rolle der Virtualisierung in DevOps
- Container & DevOps: Wie Container in DevOps-Lieferpipelines passen
- Was ist eine Containerpipeline?
- Was ist eine DevOps-Toolchain?
- Verwaltung von Containern und Code für DevOps
- Die Rolle von Agile in DevOps
- Die Rolle der Cloud in DevOps
- Was ist FinDevOps?
- Top-DevOps-Trends im Jahr 2022
- DevOps-Werte & Prinzipien
- DevOps-Kennzahlen und KPIs
- DevOps-Ratschläge für kleine, mittlere und große Organisationen
- DevOps-Teamstruktur
- Top-DevOps-Bücher, die man heute lesen sollte
- Buchrezension von The Phoenix Project: DevOps For Everyone
- DevOps-Influencer: 11 DevOps-Experten, denen Sie auf Twitter folgen können
- GitHub, GitLab, Bitbucket & Azure DevOps: Was ist der Unterschied?
- Best Practices: Wie man Anwendungen für Kubernetes architekt
- Konfigurationsmanagement in DevOps
- DevOps-Verzweigungsstrategien erklärt
- DevOps-Jobbezeichnungen, Rollen und Verantwortlichkeiten
- Testen in DevOps: Konzepte, Best Practices und mehr
- Der vollständige DevOps-Zertifizierungsleitfaden für 2022
- Was ist das Kubernetes-Operator-Muster?
Diese Beiträge sind meine eigenen und spiegeln nicht unbedingt die Position, Strategien oder Meinung von BMC wider.