Der Blog

Monitoring in der DevOps-Welt

von Twain Taylor 15. November 2016 | 8 min Lesezeit

Was ist DevOps-Monitoring?

DevOps hat die Art und Weise, wie Entwicklungs- und IT-Betriebsteams zusammenarbeiten, grundlegend verändert. Mit klar definierten Rollen und geteilter Verantwortung für die bereitgestellten Produkte und Dienste hat DevOps dazu beigetragen, eine traditionell isolierte Arbeitsumgebung aufzubrechen und gleichzeitig optimierte Arbeitsabläufe zu schaffen, um schnellere Produktions- und Lieferzeiten zu gewährleisten. Das Ziel von DevOps bestand darin, sich auf die Bedeutung von Arbeitsabläufen zu konzentrieren und, wo möglich, Automatisierung zu integrieren, um die Effizienz zu steigern und die Produktivität zu verbessern.

Um mit den durch DevOps hervorgerufenen Änderungen Schritt zu halten, waren schnellere und agilere Überwachungssysteme erforderlich. DevOps-Überwachung ist eine Form der proaktiven Überwachung mit Fokus auf Qualität zu Beginn des Produktionslebenszyklus, statt auf einem reaktiven Ansatz. Bei der DevOps-Überwachung liegt der Schwerpunkt auf der schnellen Bereitstellung zuverlässiger Dienste und neuer Funktionen oder Updates durch frühere Tests, häufig in einer Produktionsumgebung. Dies bedeutete, dass die Teams Updates und neue Funktionen häufiger und mit verbesserter Qualität und geringeren Kosten veröffentlichen konnten. Es ist darauf ausgelegt, reale Benutzerinteraktionen mit Ihrem Dienst zu simulieren – sei es eine Anwendung, Website, API usw.

DevOps-Überwachungstools

DevOps-Überwachungstools sind für die Verfolgung der spezifischen Daten und Informationen, die für Ihr Unternehmen wichtig sind, unerlässlich.

Zu unseren beliebtesten DevOps-Überwachungstools gehören:

  • Für eine umfassende DevOps-Überwachungsstrategie: Nagios
  • Zur Anwendungsüberwachung: New Relic, DynaTrace, AppDynamic
  • Zur Infrastrukturüberwachung: DataDog, LogicMonitor, SignalFX, Zenoss
  • Zur Überwachung von Protokollen: Splunk, LogEntries, Loggly

Durch die Auswahl des richtigen Toolset erhalten Sie den besten Überblick über Ihr DevOps-System, um wichtige Kennzahlen wie Verfügbarkeit, CPU- und Festplattennutzung, Reaktionszeiten und mehr zu verfolgen.

Im Mittelpunkt der Idee von DevOps ist die Zusammenarbeit zwischen allen an IT-Anwendungen und -Infrastruktur beteiligten Teams. Entwickler, Betrieb, Qualitätssicherung, Sicherheit und mehr sind alle an der Bereitstellung eines Produkts oder einer Dienstleistung beteiligt. Was also bedeutet Zusammenarbeit, wenn es um die Überwachung in der DevOps-Welt geht?

Wie DevOps die Spielregeln ändert

In der Vergangenheit haben die verschiedenen Teams, die an der Erstellung oder Wartung einer Anwendung beteiligt waren, ihren Teil zunächst vollständig fertiggestellt, bevor sie ihn an das nächste Team weitergaben. Beispielsweise hat das Entwicklungsteam zuerst Code für die gesamte App oder bestimmte Funktionen in der App geschrieben, bevor es ihn an das Qualitätssicherungsteam (QA) weitergab. Das QA-Team hat dann seine Tests und Analysen durchgeführt, bevor es ihn an das Betriebsteam weiterleitete, und so weiter.

Dies ist vergleichbar mit einer olympischen Staffel, bei der jeder 100 Meter läuft, bevor er den Stab an den nächsten weitergibt. Stellen Sie sich nun ein Team vor, das DevOps-Ideen verwendet, als würden alle Läufer gleichzeitig laufen, und zwar in vier 100-Meter-Sprints statt in einem 400-Meter-Sprint. Anstatt darauf zu warten, dass ein Team die Arbeit an das nächste übergibt, arbeitet jeder gleichzeitig an der Anwendung in seinem eigenen Schwerpunktbereich. Die DevOps-Läufer haben mehr Möglichkeiten, die Strategie anzupassen und schrittweise zu verbessern.

Plattformübergreifende und Cloud-basierte Agilität

DevOps-Konzepte werden häufig zusammen mit anderen Softwareentwicklungsmethoden wie Agile erwähnt. Die Ideen hinter Agile und DevOps sind ähnlich: Arbeit in kleinere Schritte aufteilen, in jedem Schritt iterativ verbessern, mühsame Arbeit dort vermeiden, wo es sinnvoll ist, und Erkenntnisse im gesamten Unternehmen teilen.

Natürlich können zu viele Meinungen zu eigenen Problemen führen. Gut konzipierte Anwendungen haben in der Regel mehrere Komponenten und klar definierte Problembereiche. Hier kommen oft verteilte Architekturen wie Microservices ins Spiel. Aus diesem Grund übernehmen Teams, die die DevOps-Methodik Produzieren Sie viel mehr Releases, da Sie Probleme schneller beheben können.

waterfall-devops

Die Bedeutung von Workflows

Zwei Köpfe sind besser als einer und ein Dutzend Köpfe sind sogar noch besser. Transparenz und End-to-End-Sichtbarkeit sind Schlüsselfaktoren innerhalb von DevOps für eine gute Kommunikation. End-to-End-Sichtbarkeit bedeutet, dass alle während des gesamten Entwicklungsprozesses auf dem gleichen Stand sind. Wenn alle auf dem gleichen Stand sind, läuft der Entwicklungsprozess viel reibungsloser ab und es besteht weniger die Möglichkeit, Dinge wiederholen zu müssen.

Schnellere Iterationen sorgen für zufriedenere Benutzer

Bei all dem Chaos, das mit der Entwicklung einer Anwendung einhergeht, darf man nicht vergessen, dass das ultimative Ziel darin besteht, das Endbenutzererlebnis zu verfeinern und zu verbessern. Da die meisten Cloud-basierten Anwendungen schnell auf sich ändernde Benutzeranforderungen und Marktveränderungen reagieren müssen, ist es manchmal notwendig, Updates für diese Anwendungen schnell bereitzustellen. Softwareentwickler, die DevOps-Ideen verwenden, können dieser Anforderung leichter gerecht werden, da es im teamübergreifenden Workflow weniger Engpässe gibt.

Dies sorgt nicht nur für zufriedene Kunden, sondern auch für zufriedene Entwickler, die sich wegen Bugs, Abstürzen oder Pannen viel seltener den Schlaf rauben lassen. Da eine gute Kommunikation ein wesentlicher Unterschied zwischen dem traditionellen Wasserfall-Entwicklungsstil und DevOps-Methoden ist, beeinflusst dies auch die Anforderungen an die Tools.

Der DevOps-Überwachungsstil ist also keineswegs einfacher als die traditionelle Wasserfallmethode, bei der Teams oft nur ein paar Tools für den gesamten Prozess und viele Menschen brauchten, um den Unterschied auszugleichen. Wenn ein einzelnes Team in einer Vielzahl von Bereichen (Entwicklung, Qualitätssicherung, Betrieb usw.) arbeitet, sind zahlreiche Tools erforderlich, die gut zusammenarbeiten müssen. Eine Gruppe von Tools zu finden, die alle kompatibel sind, kann eine Herausforderung sein, aber die Ergebnisse sind es wert.

Eine Möglichkeit, diese Tools zu betrachten, besteht darin, sie in vier Softwaregruppen aufzuteilen: Anwendungsleistungsüberwachung, Infrastrukturüberwachung, Protokollanalyse und nicht zuletzt Vorfallmanagement.

monitoring Überwachen Ihrer Anwendungen

Die Überwachung von Anwendungen ist ein Schlüsselfaktor bei der Identifizierung von Problemen (Leistung, Regression oder andere) und deren schneller Behebung im Rahmen der Iteration eines Teams. Drei der beliebtesten Tools zur Überwachung der Anwendungsleistung (APM) sind Neues Relikt , Dynatrace , Und AppDynamics . Sie ermöglichen den Teams nicht nur die Überwachung und Verwaltung ihrer Software, sondern auch die Überwachung der Endbenutzer, was entscheidend ist, um sicherzustellen, dass eine Anwendung das beste Erlebnis bietet.

Überwachen Ihrer Infrastruktur

Die andere Seite der Medaille der Anwendungsleistungsüberwachung ist die Infrastrukturüberwachung. Es gibt viele, viele Tools dafür, darunter SaaS-Lösungen wie Datenhund , Logikmonitor , Und SignalFx sowie Hybridlösungen wie Zenoss. Obwohl es ein Favorit von Teams ist, die von alten Entwicklungsprozessen umsteigen, Nagios allein reicht nicht für Ihre DevOps-Überwachungsstrategie.

Überwachen Ihrer Protokolle

Die Analyse von Protokollen ist ein wichtiger Teil des iterativen Verbesserungszyklus und ein wichtiger Teil der Systemfehlerbehebung, des Debuggens und der Reaktion auf Sicherheitsvorfälle. Beliebte Protokollanalysetools sind Splunk , LogEinträge , Und Loggly . Sie ermöglichen Ihnen, das Benutzerverhalten anhand der Protokolldateianalyse zu untersuchen. Sie ermöglichen Ihnen auch, schnell eine Menge Daten aus verschiedenen Quellen in einem zentralen Protokollstrom zu sammeln. Dies ist eine praktische Möglichkeit, Protokolldateien zu verwalten und zu analysieren. Neben der Fehlerbehebung spielt die Protokollanalyse eine Schlüsselrolle bei der Einhaltung von Sicherheitsrichtlinien und -vorschriften und ist für den Audit- und Inspektionsprozess von entscheidender Bedeutung.

Schnelles und effizientes Vorfallmanagement

DevOps übertrifft den traditionellen Wasserfallansatz im Bereich des Vorfallmanagements deutlich. Mithilfe von Vorfallmanagementplattformen wie PagerDuty dass Cloud-basierte Anwendungen Benutzer nun dazu ermutigen können, die meisten ihrer Probleme selbst zu lösen. PagerDuty ist in seinen Fähigkeiten einzigartig, da es nicht nur ermöglicht die Integration Mit praktisch jedem erdenklichen Tool können Sie Ihre Workflows für das Vorfallmanagement an verschiedene Teams anpassen. Dieser Ansatz vermeidet Engpässe und trägt dazu bei, das ultimative Ziel zu erreichen, nämlich die beste Benutzererfahrung zu bieten.

Verbesserung der Endbenutzererfahrung

Durch die Einhaltung von DevOps-Praktiken werden Anwendungen widerstandsfähiger, da sich Implementierungsprobleme und Mängel leichter aufdecken lassen. Mit Tools zur Infrastrukturüberwachung lässt sich ein plötzlicher Zustrom von Benutzern, der normalerweise ein System zum Absturz bringen würde, leicht erkennen. Mit Tools zur Anwendungsüberwachung können Ingenieure die Auswirkungen auf die Leistung im Detail untersuchen. Alle Probleme, die durch alle verschiedenen Qualitäts- und Überwachungsebenen entgangen sind, erfordern häufig eine genauere Untersuchung durch Protokollanalysetools. Gleichzeitig sind diese Tools alle mit einer Vorfallmanagementplattform wie verknüpft. PagerDuty , um Ingenieuren eine schnelle Triage und Zusammenarbeit bei Vorfällen zu ermöglichen

Was die Verbesserung der Benutzererfahrung angeht, ist DevOps der traditionellen Wasserfallmethode um Lichtjahre voraus. Wer mit dem technologischen Tempo Schritt halten will, muss zumindest einige Aspekte dieses Ansatzes übernehmen. Benutzer von Anwendungen, die von Teams mit DevOps-Methoden erstellt und überwacht werden, sind es gewohnt, dass ihre Probleme schnell und effizient gelöst werden. Diese Benutzer werden selten lange Wartezeiten für die Behebung von Fehlern und Katastrophen wie Systemabstürzen tolerieren. Wer auf diesem Markt etwas bewegen will, muss sich steigern, sonst bleibt er auf der Strecke.