8 Open-Source-Beobachtbarkeits- und Testtools, empfohlen von erfahrenen Entwicklungsingenieuren

Inhaltsverzeichnis

Vorwort:

Folgendes ist der Standpunkt des Autors:

1.Tracetest

Beobachtbarkeitsfunktionen von Tracetest

Merkmale der Tracetest-Testfunktion

2.Malabi

Beobachtbarkeitsmerkmale von Malabi

Malabis Testfunktion

3. Prometheus

Beobachtbarkeitsmerkmale von Prometheus

Die Testfunktion von Prometheus

4. Jäger

Beobachtbarkeitsmerkmale von Jaeger

Jaegers Testmöglichkeiten

5.Grafana-Zeit

Beobachtbarkeitsmerkmale von Grafana Tempo

Testfunktionen von Grafana Tempo

6.OpenSearch

Beobachtbarkeitsfunktionen von OpenSearch

Testfunktionen von OpenSearch

7.SignNoz

Beobachtbarkeitsfunktionen von SignNoz

Die Testfunktionen von SignNoz

8.Postbote

Beobachtbarkeitsfunktionen von Postman

Testfunktion des Postboten


Vorwort:

Als leitender Entwicklungsingenieur empfehle ich gerne einige Open-Source-Beobachtbarkeits- und Testtools.

Folgendes ist der Standpunkt des Autors:

DevOps und die „Shift Left“-Mentalität wirken sich auf die Arbeitsweise von Backend-Ingenieuren aus.

Sie müssen den Betrieb einer Anwendung überwachen. Sie müssen überwachen, wie sich eine Anwendung verhält, nachdem Ihre CI/CD-Pipeline sie in der Produktion bereitgestellt hat. Zu diesen neuen Verantwortlichkeiten gehören Beobachtbarkeit und Tests, worüber sich ein Backend-Ingenieur traditionell nicht immer kümmern musste.

Während Observability-Tools den internen Zustand eines verteilten Systems durch die Untersuchung verteilter Spuren messen können, sind Spuren eine schnell wachsende und sofort wertvolle Ressource für diejenigen, die mit verteilten Systemen arbeiten.

Testtools können Ihnen dabei helfen, durch Automatisierung zu verstehen, ob eine verteilte Anwendung oder ein verteilter Dienst gemäß seinem Design und seinen Geschäftsanforderungen funktioniert. Man kann testen, ob verschiedene Dienste wie erwartet zusammenarbeiten (Integrationstests), ob eine Anwendung die korrekte Ausgabe einer Aktion zurückgibt (Funktionstests), das Benutzerverhalten replizieren (End-to-End) und so weiter.

Je früher Sie also Observability- und Testtools in Ihren Workflow integrieren, desto reibungsloser wird Ihre Arbeit ablaufen. Die frühzeitige Instrumentierung von Backend-Diensten im Entwicklungsprozess erleichtert auch die Fehlerbehebung und die Veröffentlichung von qualitativ hochwertigem Code.

Werfen wir einen Blick darauf, welche Open-Source-Tools heute verfügbar sind, die Ihnen bei der Beobachtbarkeit und beim Testen helfen können!

1.Tracetest

Tracetest ist ein Open-Source-Testtool, das auf verteilter Ablaufverfolgung basiert und es Ihnen ermöglicht, verteilte Anwendungen zu testen, indem Sie Spannen in der verteilten Ablaufverfolgung bestätigen. Es ermöglicht die Verwendung von Trace-Daten, die im OpenTelemetry-Instrumentierungscode generiert wurden, um zu überprüfen und sicherzustellen, dass die Anwendung das erwartete Verhalten aufweist, wie in der Testdefinition definiert.

Ziel ist es, Backend-Ingenieuren dabei zu helfen, eine beobachtbarkeitsgesteuerte Entwicklung zu erreichen, d. h. Backend-Ingenieure zeichnen ihre Dienste während der Entwicklung mit verteilter Ablaufverfolgung auf, um eine qualitativ hochwertige Beobachtbarkeit zu erzielen.

Sie können ablaufverfolgungsbasierte Tests nutzen, um Tests für Ihren Code an einem Ort zu erstellen, auszuführen und anzuzeigen. Tracetest generiert automatisch End-to-End-Tests basierend auf jedem verteilten System, das verteiltes Tracing wie OpenTelemetry verwendet, und lässt sich problemlos in Jaeger, Grafana Tempo, New Relic, Lightstep, Opensearch, Datadog usw. integrieren. Darüber hinaus wird es weitere Integrationspläne geben in der Zukunft.

Tracetest ist ein neues Mitglied der Cloud Native Computing Foundation (CNCF) und ist zu 100 % Open Source.

Beobachtbarkeitsfunktionen von Tracetest

  • Nutzen Sie die bereits erfassten Trace-Daten.
  • Sofort einsatzbereite Integrationen mit den beliebtesten Trace-Datenspeichern.
  • Integrieren Sie Beobachtbarkeit in den Backend-Code, indem Sie OpenTelemetry-Instrumentierung hinzufügen.
  • Finden Sie die „Unbekannten“ in Ihrer Infrastruktur mit Einblick in die Kommunikation zwischen Diensten.

Merkmale der Tracetest-Testfunktion

  • Erstellen Sie Tests anhand von Ablaufverfolgungen, um sicherzustellen, dass das verteilte System Anforderungen zwischen Microservices wie erwartet und erforderlich verarbeitet.
  • Definieren Sie Aussagen zu Antworten und verteilter Ablaufverfolgung, um sicherzustellen, dass sowohl Antworten als auch der zugrunde liegende Prozess fehlerfrei funktionieren.
  • Helfen Sie QA-Ingenieuren, wertvolle End-to-End-Tests mit einer visuellen Benutzeroberfläche zu schreiben.
  • Verwenden Sie Tests und Behauptungen über mehrere Microservices hinweg mit einer leistungsstarken Filter-Engine wieder.

2.Malabi

Malabi ist ein Open-Source-Testframework. Mit Malabi können Integrationstests auf einem verteilten System geschrieben werden, indem während eines Testlaufs Daten von Microservices gesammelt und dann ein Endpunkt bereitgestellt werden, um Aussagen zu diesen Daten zu treffen. Der Betreuer sagt, dass Malabi Trace-basierte Tests implementiert, ähnlich wie Tracetest. Malabi verwendet OpenTelemetry, um Trace-Daten zu sammeln.

Die Entwicklungsgeschwindigkeit ist ein wichtiger Gesichtspunkt bei der Auswahl eines Produkts oder einer Plattform – Open Source, geschlossene SaaS-Webanwendungen oder alles dazwischen. Allerdings hat Malabi seit einem Jahr nichts mehr für GitHub zugesagt, was darauf hindeuten könnte, dass Sie bei Problemen möglicherweise nicht rechtzeitig weitere Funktionen oder technischen Support erhalten.

Beobachtbarkeitsmerkmale von Malabi

  • Malabi wurde nicht im Hinblick auf die Beobachtbarkeit entwickelt, was bedeutet, dass es dafür keine Funktionalität bietet.

Malabis Testfunktion

  • Validieren Sie jegliche Integration zwischen Teilen des verteilten Systems, bevor Sie es in die Produktion überführen. Fügen Sie jedem Microservice, den Sie testen möchten, eine einfache JavaScript-basierte Assertionsbibliothek hinzu.

3. Prometheus

Prometheus konzentriert sich auf das Sammeln von Metriken und die Aktivierung von Warnungen, einschließlich Beobachtbarkeit. Es verwendet eine leistungsstarke Zeitreihendatenbank zum Speichern hochauflösender Metrikdaten und verwendet mehrere Schemata, um von Back-End-Diensten gesammelte Daten zu visualisieren.

Prometheus ist ein sehr beliebtes Open-Source-Projekt mit 465.000 Sternen auf GitHub und einem offiziellen CNCF-Abschluss. Backend-Ingenieure, die ein leistungsstarkes Observability-Tool benötigen, wissen den Wert von Prometheus auf jeden Fall zu schätzen. Viel Unterstützung und Liebe aus der Community.

Beobachtbarkeitsmerkmale von Prometheus

  • Speichert langfristige Metrikdaten für historische Analysen mit einer effizienten Zeitreihendatenbank und Skalierbarkeit durch Sharding und Föderation.
  • Erstellen Sie leistungsstarke Warnungen mit PromQL, einer flexiblen Abfragesprache, die dimensionale Informationen verwaltet.
  • Übertragen Sie Metriken oder Warnungen über Open-Source-Clientbibliotheken und -Integrationen an andere Tools in Ihrer Observability-Infrastruktur.

Die Testfunktion von Prometheus

  • Da es sich bei Prometheus lediglich um ein Metrikerfassungs- und Alarmierungstool handelt, ist es für Backend-Entwickler, die ihre Dienste testen möchten, nicht wirklich hilfreich.

4. Jäger

Jaeger ist ein Open-Source-End-to-End-Tracing-Tool, das Entwicklern bei der Überwachung und Fehlerbehebung verteilter Umgebungen helfen soll, mit dem Ziel, die Art und Weise, wie Entwickler verteilte Dienste debuggen, zu vereinfachen.

Jaeger ist vollständig Open Source, das Projekt begann bei Uber, Uber veröffentlichte den Quellcode und spendete das Projekt schließlich an CNCF.

Beobachtbarkeitsmerkmale von Jaeger

  • Überwachen Sie Transaktionen zwischen verteilten Diensten, um den Zustand und die Leistung der Infrastruktur zu verstehen.
  • Führen Sie eine Ursachenanalyse durch, indem Sie einzelne Transaktionen aufschlüsseln, die zu Problemen für den Benutzer führen.
  • Optimieren Sie Leistung und Latenz, indem Sie herausfinden, welche Dienste am langsamsten auf Anfragen reagieren.

Jaegers Testmöglichkeiten

  • Jaeger ist für die End-to-End-Ablaufverfolgung konzipiert, verfügt jedoch über keine Tools, die Sie bei der Entwicklung von Tests für Backend-Dienste unterstützen.

5.Grafana-Zeit

Grafana Tempo ist ein Open-Source-Backend für die verteilte Ablaufverfolgung, das für die Erfassung und Speicherung von Ablaufverfolgungsdaten verantwortlich ist. Das Projekt ist Open Source unter der AGPLv3-Lizenz. Es wird von Grafana Labs erstellt und verwaltet, dem Unternehmen, das hinter anderen Open-Source-Projekten wie Loki für die Protokollierung, Grafana für die Visualisierung und Warnung von Metrikdaten und Mimir für die Speicherung von Metrikdaten steht. Es wurde erstmals im Oktober 2020 angekündigt und wird 2021 allgemein verfügbar sein.

Beobachtbarkeitsmerkmale von Grafana Tempo

  • Erfassen Sie Trace-Daten aus den gängigsten Open-Source-Trace-Protokollen, darunter OpenTelmetry, Jaeger und Zipkin.
  • Kostengünstige Langzeitspeicherung von Tracking-Daten zur Erschließung historischer Datentrends und Analysen.

Testfunktionen von Grafana Tempo

  • Während Grafana Tempo bei der Implementierung der Ablaufverfolgung in Backend-Diensten hilft, verfügt es nicht über Tools zum Schreiben oder Ausführen von Tests.

6.OpenSearch

OpenSearch ist eine Open-Source-Datenbank zum Erfassen, Suchen, Visualisieren und Analysieren von Daten. Es basiert auf Apache Lucene, einer kostenlosen Softwarebibliothek für die Indizierung und Suche, die OpenSearch für erweiterte Analysefunktionen wie Anomalieerkennung, maschinelles Lernen, Volltextsuche und mehr nutzt.

OpenSearch entstand aus einer Open-Source-Debatte. Anfang 2021 kündigte Elastic an, das Lizenzmodell für die Projekte Elasticsearch und Kibana zu ändern. AWS reagierte, indem es diese Projekte in OpenSearch bzw. OpenSearch Dashboards aufteilte und die freizügigere ALv2-Lizenz einführte.

Beobachtbarkeitsfunktionen von OpenSearch

  • Erfassen Sie Trace-Daten von OpenTelemetry oder Jaeger, die zur Visualisierung und Identifizierung von Leistungsproblemen verwendet werden können.
  • Sammeln Sie Beobachtbarkeitsdaten von Prometheus mit Community-Plugins und passen Sie die Ausgabe mit umfassenden Visualisierungen an.
  • Filtern, transformieren, normalisieren und aggregieren Sie Daten, um die Analyse und Visualisierung relevanter und einfacher zu gestalten.

Testfunktionen von OpenSearch

  • Während OpenSearch Metriken, Traces und Protokolle sammeln kann, die alle zur Validierung von Tests verwendet werden können, verfügt es über keine Funktionen, die Entwicklern beim Erstellen, Bereitstellen oder Verwalten dieser Tests helfen. Benutzer müssen ein separates Tool finden und dieses verbinden Ausgabe an OpenSearch.

7.SignNoz

Das Team hinter SigNoz beschreibt sich selbst als Open-Source-Alternative zu Observability-Plattformen der Enterprise-Klasse wie Datadog, New Relic und anderen. Im Gegensatz zu einigen allgemeineren Tools konzentriert sich SigNoz auf die Anwendungsleistungsüberwachung (APM), die versucht, die Leistung aus der Perspektive des Endbenutzererlebnisses zu messen und Entwicklern dabei zu helfen, Probleme zu beheben, bevor echte Benutzer betroffen sind.

Seit dem Start im Januar 2021 hat das SigNoz-Projekt fast 12.000 GitHub-Sterne gesammelt und bietet eine kostenpflichtige (200 US-Dollar/Monat) Cloud-Version der von seinem Team verwalteten Software an.

Beobachtbarkeitsfunktionen von SignNoz

  • Unterstützt OpenTelemetry, das als Grundlage für Anwendungen zur Generierung von Trace-Daten verwendet werden kann.
  • Bietet eine einheitliche Benutzeroberfläche für Metriken, Traces und Protokolle, wodurch der Kontextwechsel zwischen anderen Observability-Tools wie Prometheus und Jaeger zum Debuggen und Beheben von Problemen entfällt.
  • Flamegraphs und individuelle Anforderungsverfolgung helfen dabei, die Grundursache von Leistungsproblemen zu finden.
  • Erstellen Sie Dashboards und Warnungen basierend auf Attributen in Protokollen.
  • Visualisieren Sie schnell die langsamsten Endpunkte in Ihrer Anwendung.

Die Testfunktionen von SignNoz

  • Da SigNoz ein reines Beobachtungstool ist, verfügt es derzeit über keine spezifischen Funktionen, die Back-End-Entwicklern helfen, den Status und die Leistung verteilter Systeme zu verstehen.

8.Postbote

Postman unterscheidet sich von den Tracking- und Beobachtungstools, die wir gerade behandelt haben. Stattdessen ist Postman eine Cloud-Plattform zum Erstellen und Nutzen von APIs. Mit Postman können Backend-Teams APIs während ihres gesamten Lebenszyklus an einem einzigen Ort erstellen, dokumentieren, simulieren und testen.

Postman selbst ist kein Open Source, sondern eine geschlossene Cloud-Plattform, aber das Unternehmen hat eine etablierte Open-Source-Philosophie und unterhält einige Open-Source-Projekte wie Newman zum Ausführen und Testen von Postman-Sammlungen auf der CLI oder verschiedene Programmiersprachen-SDKs und Codegeneratoren. Als Beweis für das Durchhaltevermögen von Postman hat das Unternehmen zuletzt im August 2021 eine Finanzierung in Höhe von 225 Millionen US-Dollar in der Serie-D-Runde aufgenommen, die das Unternehmen mit 5,6 Milliarden US-Dollar bewertete.

Beobachtbarkeitsfunktionen von Postman

  • Als API-Entwicklungsplattform bietet Postman keine Observability-Funktionen.

Testfunktion des Postboten

  • Speichern und verwalten Sie alle API-Spezifikationen, Dokumentationen, Testfälle, Metriken und mehr an einem zentralen Ort.
  • Debuggen und testen Sie APIs mit einem Client, der komplexe Anfragen über HTTP, REST, SOAP, GraphQL und Websockets unterstützt, die zur Wiederverwendung in Postman-Sammlungen gebündelt werden können.
  • Kombinieren Sie den API-Lebenszyklus mit Quellcodeverwaltung, CI/CD-Pipelines, API-Gateways und Application Performance Monitoring (APM)-Plattformen.

## Zusammenfassung
Nachdem ich so viel behandelt habe, habe ich versucht, einige der verschiedenen Arten wichtiger Tools in diesem schnell wachsenden Bereich abzudecken, bei denen es sich allesamt um kostenlose Open-Source-Software auf GitHub handelt.

Eine klare Offenbarung ist der enorme Wert der Instrumentierung von Backend-Code mit verteiltem Tracing und OpenTelemetry, und zwar eher früher als später. Viele beliebte Observability- und Testtools lassen sich in die Collectors oder SDKs von OpenTelemetry integrieren, was bedeutet, dass Sie mehrere Tools gleichzeitig instrumentieren und testen können, um die beste Lösung für den Backend-Entwicklungsworkflow Ihres Unternehmens zu finden.

  Als jemand, der schon einmal hier war, hoffe ich auch, dass jeder einige Umwege erspart

Hier werde ich Ihnen einige Notwendigkeiten für die weitere Vorgehensweise beim automatisierten Testen mitteilen, in der Hoffnung, Ihnen dabei zu helfen.

(Automatisierte WEB-Tests, automatisierte App-Tests, automatisierte Schnittstellentests, kontinuierliche Integration, automatisierte Testentwicklung, Fragen zu Vorstellungsgesprächen in großen Fabriken, Lebenslaufvorlagen usw.)

Ich glaube, dass Sie dadurch bessere Fortschritte erzielen können!

Klicken Sie auf die kleine Karte unten

Guess you like

Origin blog.csdn.net/Free355/article/details/131721969