Der Begriff Observability stammt aus dem Ingenieurwesen und erfreut sich in den letzten Jahren auch im Bereich der Softwareentwicklung immer größerer Beliebtheit. Einfach ausgedrückt ist Beobachtbarkeit die Fähigkeit, den internen Zustand eines Systems anhand externer Outputs zu verstehen. IBM definiert Beobachtbarkeit als:
Im Allgemeinen bezieht sich Beobachtbarkeit auf den Grad, in dem der interne Zustand oder Zustand eines komplexen Systems basierend auf der Kenntnis seiner externen Ausgabe verstanden werden kann. Je besser das System beobachtbar ist, desto schneller und genauer kann die Ursache eines Leistungsproblems ermittelt werden, ohne dass zusätzliche Tests oder Codierung erforderlich sind.
Im Cloud Computing bezieht sich Observability auch auf die Softwaretools und -praktiken zum Aggregieren, Korrelieren und Analysieren von Daten aus verteilten Anwendungssystemen und der Infrastruktur, die ihren Betrieb unterstützt, um Anwendungssysteme effektiver zu überwachen und zu steuern um die Optimierung des Kundenerlebnisses, Service Level Agreements (SLAs) und andere Geschäftsziele zu erreichen.
Da die IT-Architektur komplexer wird, werden Systemmanagement und Fehlerbehebung komplexer. In vielen Szenarien reichen herkömmliche Ansätze nicht mehr aus, um eine optimale Leistung sicherzustellen. Beobachtbarkeit wird oft als eine Ableitung der Überwachung betrachtet. Bei der Überwachung geht es oft darum, einen bestimmten Satz von Metriken zu verfolgen, etwa die CPU-Auslastung oder den Netzwerkverkehr, und Warnungen auszulösen, wenn diese Metriken Schwellenwerte überschreiten. Bei der Überwachung gibt es bestimmte Einschränkungen, während bei der Beobachtbarkeit das Sammeln und Analysieren eines größeren Datenspektrums erforderlich ist, um einen umfassenderen Überblick über das Systemverhalten zu erhalten.
In der Softwareentwicklung bezieht sich Beobachtbarkeit auf die Fähigkeit, das Anwendungsverhalten und die Leistung basierend auf den von der Anwendung generierten Daten, einschließlich Protokollen, Metriken, Ablaufverfolgungen und anderen Daten, zu verstehen. Durch die Analyse dieser Daten können Entwickler die Leistung ihrer Anwendung verstehen und Verbesserungsmöglichkeiten identifizieren.
Plattformsicherheit ist ein praktischer Anwendungsfall der Beobachtbarkeit.
Plattformsicherheitsteams erhalten große Datenmengen in verschiedenen Formaten aus mehreren Quellen. Die Analyse unübersichtlicher, qualitativ minderwertiger Daten verlangsamt die Fähigkeit, Schwachstellen zu erkennen, neue Bedrohungen zu finden und bei Sicherheitsverstößen zu reagieren. Darüber hinaus besteht beim Einsatz mehrerer Sicherheitstools auch das Problem, dass Informationen nicht zwischen verschiedenen Sicherheitstools ausgetauscht werden können.
Die Lösung besteht darin, Observability-Filter zu definieren, um potenzielle Sicherheitsbedrohungen zu identifizieren und die Qualität der eingehenden zu analysierenden Daten zu verbessern. Der nächste Schritt besteht darin, die Daten mit unterstützenden Daten aus externen Datenbanken anzureichern, um die Analyse und Identifizierung von Sicherheitsbedrohungen zu unterstützen. Von DNS-Informationen über IP-Adressen bis hin zu Benutzerkennungen kann alles hinzugefügt werden.
Einer der Hauptvorteile von Observability besteht darin, dass es Entwicklern hilft, Probleme mit ihren Anwendungen schnell zu erkennen und zu beheben. Durch die Analyse der von einer Anwendung generierten Telemetriedaten können Entwickler deren Leistung verstehen und Richtungen identifizieren, in denen die Leistung verbessert werden kann. Dies trägt dazu bei, Ausfallzeiten zu reduzieren und das allgemeine Benutzererlebnis zu verbessern.
Mit der Automatisierung werden die Aktualität und Genauigkeit der Überwachung und Steuerung verbessert. Gleichzeitig trägt es dazu bei, die gesamten Überwachungs- und Wartungskosten zu senken.
Beobachtbarkeit basiert im Allgemeinen auf drei Säulen:
Viele Prozesse können Protokolle ihrer Aktivitäten erstellen. Im Allgemeinen sind sie für die Beobachtbarkeit nützlich, in einigen Fällen müssen sie jedoch angepasst werden, um den in den Protokollen angezeigten Detaillierungsgrad zu erhöhen, damit sie nützlich sind.
Protokolle sind sehr nützlich, aber Vorwärts- und Rückwärtsverfolgung sind auch notwendig, um zu sehen, warum ein Ereignis aufgetreten ist und welche Konsequenzen es hat.
Mit Metriken messen wir Anomalien und lösen bei Bedarf Korrekturmaßnahmen aus. Vereinfacht ausgedrückt muss man den Normalzustand kennen und Abweichungen vom Normalzustand erkennen. Daher ist es ein Muss, über Indikatoren zu verfügen, die den Normalzustand definieren.
Observability kann auch mit einigen älteren Tools implementiert werden, diese weisen jedoch einige Einschränkungen hinsichtlich Anwendbarkeit und Abdeckung auf. Um Beobachtbarkeit zu erreichen, ist eine Reihe von Techniken und Werkzeugen erforderlich, die die drei Säulen der Beobachtbarkeit abdecken: Protokolle, Spuren und Metriken.
Mit diesen Tools können Manager, Überwacher und Entwickler Daten aus einer Vielzahl von Quellen sammeln und analysieren, einschließlich Anwendungscode, Infrastruktur und Benutzerverhalten. Durch die gemeinsame Verwendung dieser Tools können Systemadministratoren einen vollständigen Überblick über das Verhalten und die Leistung eines gesamten Systems oder eines einzelnen Systems erhalten und so Probleme genauer und schneller identifizieren und lösen.
Der erste Schritt besteht darin, Tools einzusetzen, die die Leistung des Gesamtsystems oder einzelner Systeme messen. Diese Tools müssen Protokolle, Metriken und Traces abdecken, um Daten über Systemverhalten und Leistung zu sammeln. Durch die Verbindung von Netzwerkmanagement- und Steuerungssystemen wird die Beobachtbarkeit verbessert.
Nachdem Sie das Dashboard installiert haben, müssen Sie die vom System generierten Daten sammeln. Zum Sammeln von Daten können Tools wie Protokollierungsframeworks, Metrikerfassungssysteme und Ablaufverfolgungsbibliotheken verwendet werden.
Sie müssen die von jedem Tool bereitgestellten Daten überprüfen und entscheiden, welche Daten gespeichert, sicher ignoriert oder verworfen werden sollen.
Der nächste Schritt besteht darin, festzulegen, wie die Daten Ihres Telefons gespeichert werden. Durch das Speichern von Daten an einem zentralen Ort, beispielsweise in einer Datenbank oder einem Data Lake, können die Daten später einfacher abgefragt oder analysiert werden. Cloud-Speicher ist in dieser Hinsicht sehr nützlich. Viele Unternehmen verwenden Klassifizierungssysteme, bei denen neue Daten sofort verfügbar sind, während historische Daten für einige Zeit in einem Online-Repository verbleiben. Automatische Abrufsysteme können auf ältere, offline gespeicherte Daten zugreifen.
Regelmäßige Datensicherung gehört zum täglichen Betriebsablauf. Wie Sie den Grenzpunkt zwischen Sofort-, Online- und Offline-Speicher definieren, hängt von den Geschäftsanforderungen ab.
Als nächstes können Sie mit der Analyse der gesammelten Daten beginnen, um das Verhalten und die Leistung Ihres Systems zu verstehen. Der Analyseprozess umfasst den Einsatz von Tools wie Dashboards, Warnsystemen und Modellen für maschinelles Lernen.
Sie können Ihre Daten sofort analysieren, um Nutzungsänderungen zu erkennen und zu verwalten, beispielsweise um die Auswirkungen von Marketingkampagnen auf Ihre E-Commerce-Anwendung zu beobachten. Sie können auch historische Trends analysieren. Beispielsweise ist die Hauptsaison für den Teppichkauf auf der Nordhalbkugel normalerweise im Herbst, etwa Anfang Oktober. Die historische Analyse wird ähnliche Muster im Unternehmen aufdecken.
Visualisierung ist der entscheidende Punkt. Die Darstellung von Daten erfolgt in verschiedenen Formen wie Diagrammen und Grafiken. Die Visualisierung hilft dabei, Trends und Muster im Systemverhalten zu erkennen. Es gibt viele Visualisierungstools, sogar Microsoft Excel kann diesen Prozess durchführen.
Insgesamt erfordert das Erreichen von Beobachtbarkeit eine Kombination aus Tools, Prozessen und Best Practices, die es Ihnen ermöglichen, das Verhalten und die Leistung Ihres Systems sowohl auf ganzheitlicher als auch auf granularer Ebene zu verstehen. Dies hilft Entscheidungsträgern in Unternehmen und Abteilungen, Probleme schneller zu erkennen und zu lösen.
Observability ist ein leistungsstarkes Konzept, das Entwicklern helfen kann, Einblicke in das Verhalten und die Leistung ihrer Anwendungen zu gewinnen. Durch das Sammeln und Analysieren von Telemetriedaten können Entwickler Probleme schnell identifizieren und lösen, wodurch das Benutzererlebnis insgesamt verbessert und Ausfallzeiten reduziert werden.
Das obige ist der detaillierte Inhalt vonWas ist Beobachtbarkeit? Alles, was ein Anfänger wissen muss. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!