Kommentar

Microservices-Architekturen: Optimal monitoren mit Distributed Tracing

Heutige Websites – vor allem, wenn sie einen Shop beinhalten – bilden eine komplexe Software-Umgebung, in der sich jeder Request seinen Weg durch dutzende Services bahnen muss. Dennoch erwarten Kunden stets eine zufriedenstellende Performance und Verfügbarkeit, auch bei hohem Traffic oder zu Peak-Zeiten. Carlo Pacifico, Regional Vice President DACH bei New Relic, kommentiert die Vorteile von Distributed Tracing.

Ein kleiner Fehler auf dem langen Weg könnte die gesamte Bearbeitung der Requests negativ beeinflussen, eine gute Customer Experience in eine schlechte verwandeln und potentielle Käufer abschrecken.

Anzeige

Software-Entwickler müssen die Performance jedes einzelnen Services deshalb vollständig verstehen – sowohl Upstream als auch Downstream. Erst dann können sie Probleme in der Performance besser beheben, den allgemeinen Systemzustand messen und wichtige Bereiche für Optimierungen priorisieren. Traces können dabei helfen, die Ursprünge von Performance-Problemen leichter zu erkennen: Sie zeigen die Zusammenhänge zwischen der Performance, dem Code und aufkommenden Fehlern auf, indem sie eine automatische Instrumentierung auf Code-Ebene nutzen. Mit Distributed Tracing ist dies auch in Microservice-Architekturen möglich.

Distributed Tracing ist optimal für verteilte Systeme

Traditionelle monolithische Umgebungen sind relativ simpel aufgebaut und basieren auf nur wenigen großen Services. Tauchen dort Fehler auf, können diese schnell identifiziert und behoben werden. Durch den verstärkten Wandel in Microservices-Architekturen wird die Fehlersuche indes immer schwieriger. Doch mit Distributed Tracing kann die Ausführung von Applikationen auch mit mehreren kleineren Services genauestens überwacht, gemessen und diagnostiziert werden.

Development-Operations- (DevOps) und IT-Teams haben also die Möglichkeit, das System zu überwachen und Performance-Informationen zu erhalten. Sobald ein Service einen bestimmten Request erhält, kreiert das System einen entsprechenden Kontext. Dieser wird dann über die gesamten folgenden Prozesse weiterverwendet, an Transaktionen angehängt und zuletzt an das Tracing-Backend gesendet. Auf diese Weise können alle Transaktionen später zusammengeführt werden.

Programmübergreifendes und integriertes Tracing

Doch mit der Nutzung von Microservices müssen Transaktionen inzwischen auch über die Grenzen einzelner Prozesse hinweg verfolgt werden können. Dies gilt ebenso für Stellen, an denen Application Performance Management nicht funktioniert.

Mit einer steigenden Anzahl an Diensten in der Cloud entsteht zudem mehr Trace-Kontext, der das Monitoring verkompliziert. Ausgewählte Software-Anbieter von Monitoring-Programmen, wie beispielsweise New Relic, haben es sich deshalb zur Aufgabe gemacht, programmübergreifendes und integriertes Tracing für Hunderte von Frameworks und vorgefertigte Bibliotheken anzubieten. Sie ermöglichen ihren Kunden damit Echtzeit-Einsichten in den Verlauf von Requests und sorgen dafür, dass Entwickler ihren Code nicht manuell instrumentieren müssen.

Newsletter
Newsletter Box

Mit Klick auf den Button "Jetzt Anmelden" stimme ich der Datenschutzerklärung zu.

Spezifizierte Einsichten durch Distributed Tracing

Damit der Trace-Kontext nicht verloren geht, bietet Distributed Tracing zusätzliche Vorteile wie das Hinzufügen benutzerdefinierter Attribute in die Traces. Zudem werden Dashboards mit spezifischen Trace-Informationen erstellt, die nach bestimmten Attributen gefiltert werden können. Folglich können DevOps-Teams die Fehlersuche auf einzelne Kunden, Konten oder andere Unternehmens-Parameter einschränken und damit Schwachstellen leichter erkennen sowie die Fehlerbehebung erheblich beschleunigen.

Außerdem sind DevOps-Teams damit in der Lage, Trends für bestimmte Workflows aus historischen Daten zu bestimmen und mit Hilfe von Maschinellem Lernen Muster innerhalb des Systems zu erkennen.

New Relic bietet individuelles Distributed-Tracing-Projekt an

Um das gesamte System mit Hilfe von Distributed Tracing zu überwachen, ist es wichtig, dass Monitoring-Tools ein möglichst breites Spektrum an technischen Standards und Programmiersprachen beherrschen. Das Distributed-Tracing-Projekt von New Relic umfasst die gesamte New Relic Engineering Organisation. Diese beinhaltet elf Sprachagenten, eine Dateneingangsschicht, die Verarbeitung und Speicherung sowie viele Frontend-Benutzeroberflächen. Das Projekt zielt darauf ab, Software-Entwicklern in modernen Umgebungen die Erfassung, Visualisierung und Analyse von Traces in komplexen Architekturen zu erleichtern.

Außerdem sorgt eine klare Definition der Konditionen und Problemdomänen für eine bessere Übersicht und unterstützt neue Herangehensweisen an Problemlösungen sowie Möglichkeiten der Zusammenarbeit. Damit alle interessierten Unternehmen vom Distributed Tracing profitieren können, gibt es das Distributed Tracing von New Relic nicht nur für die vier bekanntesten Programmiersprachen Java, Node.js, Python und Ruby, sondern auch für .NET und Golang. 

Carlo Pacifico,
Carlo Pacifico, Regional Vice President DACH bei New Relic

https://newrelic.de/

 

Anzeige

Weitere Artikel

Newsletter
Newsletter Box

Mit Klick auf den Button "Jetzt Anmelden" stimme ich der Datenschutzerklärung zu.