Zusammenführung von OpenTracing und OpenCensus: Der Weg zur Konvergenz

Zusammenführung von OpenTracing und OpenCensus: Der Weg zur Konvergenz

Autoren: Ted Young, Pritam Shah und das Technical Specifications Committee (Carlos Alberto, Bogdan Drutu, Sergei Kanzhelev und Yuri Shkuro).

Das Gemeinschaftsprojekt erhielt den Namen: http://opentelemetry.io

Ganz, ganz kurz:

  • Wir erstellen einen neuen einheitlichen Satz von Bibliotheken und Spezifikationen für Telemetrieüberwachungsfunktionen. Es wird die Projekte OpenTracing und OpenCensus zusammenführen und einen unterstützten Pfad für die Migration bereitstellen.
  • Die Referenzimplementierung in Java wird am 24. April verfügbar sein und die Arbeiten an Implementierungen in anderen Sprachen werden am 8. Mai 2019 vollständig beginnen. Sehen Sie sich den Zeitplan an hier.
  • Bis September 2019 ist eine Parität mit bestehenden Projekten für C#, Golang, Java, NodeJS und Python geplant. Es liegt noch viel Arbeit vor uns, aber wenn wir parallel arbeiten, können wir das bewältigen. Wenn Sie an einer Teilnahme an diesem Projekt interessiert sind, registrieren Sie sich bitte und teilen Sie uns mit, wie Sie einen Beitrag leisten möchten.
  • Sobald die Implementierung in jeder Sprache ausgereift ist, werden die entsprechenden OpenTracing- und OpenCensus-Projekte geschlossen. Dies bedeutet, dass die alten Projekte eingefroren werden und das neue Projekt die vorhandenen Tools weiterhin zwei Jahre lang durch Abwärtskompatibilität unterstützt.

Projektübersicht

Zusammenführung von OpenTracing und OpenCensus: Der Weg zur Konvergenz

Wir machen eine Fusion! Das ultimative Ziel besteht darin, die Projekte OpenTracing und OpenCensus in einem gemeinsamen Projekt zusammenzuführen.
Der Kern des neuen Projekts wird eine Reihe sauberer und durchdachter Schnittstellen sein, einschließlich der traditionellen Zusammenstellung von Bibliotheken, die diese Schnittstellen in Form sogenannter Schnittstellen implementieren. SDK. Das Tüpfelchen auf dem i sind empfohlene Standards für Daten- und Leitungsprotokolle, einschließlich gemeinsamer Teile der Infrastruktur.
Das Ergebnis wird ein vollständiges Telemetriesystem sein, das für die Überwachung von Microservices und anderen Arten moderner verteilter Systeme geeignet ist und mit den meisten wichtigen OSS- und kommerziellen Backend-Software kompatibel ist.

Hauptveranstaltungen

24.04. – Referenzkandidat zur Prüfung eingereicht.
8.05 – Ein Team wird gebildet und beginnt in allen Sprachen zu arbeiten.
20.05 – Offizieller Start des Projekts auf der Kubecon Barcelona.
6.09 – Implementierungen in C#, Golang, Java, NodeJS und Python erreichen Parität mit ihren Gegenstücken.
6.11 – Offizieller Abschluss der Projekte OpenTracing und OpenCensus.
20.11 – Abschiedsparty zu Ehren des Abschlusses von Projekten beim Observability Summit, Kubecon San Diego.

Zeitleiste der Konvergenz

Zusammenführung von OpenTracing und OpenCensus: Der Weg zur Konvergenz

Die Migration für jede Sprache umfasst einen produktionsbereiten SDK-Build, Tools für beliebte Bibliotheken, Dokumentation, CI, Abwärtskompatibilitätstools und den Abschluss der zugehörigen OpenCensus- und OpenTracing-Projekte („Sunset“). Für September 2019 haben wir uns ein ehrgeiziges Ziel gesetzt: Parität für die Sprachen C#, Golang, Java, NodeJS und Python zu erreichen. Wir werden das Sonnenuntergangsdatum verschieben, bis alle Sprachen bereit sind. Aber es ist besser, dies zu vermeiden.
Berücksichtigen Sie bei der Betrachtung Ihrer Ziele bitte Ihr persönliches Engagement, teilen Sie uns dies durch Ausfüllen mit Anmeldeformular, oder indem Sie in den Gitter-Chats der Projekte Hallo sagen OpenTracing и OpenCensus. Sie können die Grafik als Infografik anzeigen hier.

Ziel: Erster Entwurf der sprachübergreifenden Spezifikation (Fertigstellung bis 8. Mai)

Es ist wichtig, kohärent zu arbeiten, auch wenn parallel in verschiedenen Sprachen gearbeitet wird. Die sprachübergreifende Spezifikation bietet Orientierung für das Projekt. Es klingt prosaisch, garantiert aber die Unterstützung eines kohärenten Systems, das sich unabhängig von der Programmiersprache vertraut anfühlt.

Obligatorische Anforderungen für den ersten Spezifikationsentwurf für Sprache X:

  • Definitionen der allgemeinen Terminologie.
  • Ein Modell zur Beschreibung verteilter Transaktionen, Statistiken und Metriken.
  • Klarstellungen zu wichtigen Fragen, die während der Umsetzung aufgetreten sind.

Dieses Ziel blockiert die weiteren Arbeiten, der erste Entwurf muss bis zum 8. Mai fertiggestellt sein.

Ziel: Erster Entwurf zur Datenspezifikation (Fertigstellung bis 6. Juli)

Die Datenspezifikation definiert ein gemeinsames Datenformat für Traces und Metriken, sodass von allen Prozessen exportierte Daten unabhängig vom Datengenerierungsprozess von derselben Telemetrieinfrastruktur verarbeitet werden können. Dazu gehört das Datenschema für das Trace-Modell, das in der sprachübergreifenden Spezifikation beschrieben ist. Außerdem sind Metadatendefinitionen für allgemeine Vorgänge enthalten, die der Trace zum Erfassen verwendet, z. B. HTTP-Anforderungen, Fehler und Datenbankabfragen. Diese semantische Konventionen sind ein Beispiel.

Der erste Entwurf basiert auf dem aktuellen OpenCensus-Datenformat und wird Folgendes enthalten:

  • Ein Datenschema, das eine sprachübergreifende Spezifikation implementiert.
  • Metadatendefinitionen für allgemeine Vorgänge.
  • JSON- und Protobuf-Definitionen.
  • Implementierung von Referenzkunden.

Bitte beachten Sie, dass es auch ein Wire-Protokoll gibt, das Spuren im Band verteilt, das wir ebenfalls standardisieren möchten. Vertriebsformat Trace-Kontext entwickelt durch W3C.

Ziel: Parität über alle wichtigen unterstützten Sprachen hinweg (Fertigstellung bis zum 6. September)

Wir müssen Parität für das aktuelle Sprachökosystem erreichen, indem wir alte Projekte durch neue ersetzen.

  • Schnittstellendefinitionen für Ablaufverfolgung, Metriken und Kontextweitergabe basierend auf einer sprachübergreifenden Spezifikation.
  • Ein gebrauchsfertiges SDK, das diese Schnittstellen implementiert und Trace-Daten exportiert. Wenn möglich, wird das SDK durch Portierung einer vorhandenen Implementierung von OpenCensus erstellt.
  • Toolkit für beliebte Bibliotheken, die derzeit in OpenTracing und OpenCensus abgedeckt werden.

Wir legen außerdem Wert auf Abwärtskompatibilität und möchten einen reibungslosen Übergang von bestehenden Projekten sicherstellen.

  • Das neue SDK wird abwärtskompatibel mit aktuellen OpenTracing-Schnittstellen sein. Sie ermöglichen die Ausführung älterer OpenTracing-Tools neben neuen Tools im selben Prozess, sodass Benutzer ihre Arbeit im Laufe der Zeit migrieren können.
  • Wenn das neue SDK fertig ist, wird ein Upgrade-Plan für aktuelle OpenCensus-Benutzer erstellt. Wie bei OpenTracing können ältere Tools weiterhin neben neuen Tools arbeiten.
  • Bis November werden sowohl OpenTracing als auch OpenCensus keine Änderungen mehr akzeptieren. Die Abwärtskompatibilität mit älteren Tools wird zwei Jahre lang unterstützt.

Die Erstellung eines erstklassigen SDK für jede Sprache erfordert viel Arbeit, und das ist es, was wir am meisten brauchen.

Ziel: Basisdokumentation (Fertigstellung bis 6. September)

Ein entscheidender Faktor für den Erfolg jedes Open-Source-Projekts ist die Dokumentation. Wir wollen erstklassige Dokumentations- und Schulungstools und unsere technischen Redakteure sind die aktivsten Entwickler des Projekts. Entwicklern beizubringen, wie man Software richtig überwacht, ist eine der wichtigsten Auswirkungen, die wir auf die Welt haben wollen.

Für den Einstieg sind mindestens folgende Unterlagen erforderlich:

  • Projektorientierung.
  • Beobachtbarkeit 101.
  • Beginn der Arbeiten.
  • Sprachführer (jeweils separat).

Autoren aller Niveaus sind willkommen! Unsere neue Website basiert auf Hugo und verwendet reguläres Markup, sodass es ganz einfach ist, Beiträge zu leisten.

Ziel: Registry v1.0 (Fertigstellung bis 6. Juli)

Registry – eine weitere wichtige Komponente, eine verbesserte Version OpenTracing-Registrierung.

  • Es ist einfach, Bibliotheken, Plugins, Installationsprogramme und andere Komponenten zu finden.
  • Einfache Verwaltung von Registrierungskomponenten.
  • Sie können herausfinden, welche SDK-Funktionen in den einzelnen Sprachen verfügbar sind.

Wenn Sie sich für Design, Interface und UX interessieren, haben wir ein hervorragendes Projekt für die persönliche Teilnahme.

Ziel: Infrastruktur für Softwaretests und -freigabe (Fertigstellung bis 6. September)

Um sicherzustellen, dass wir weiterhin sicheren Code liefern, auf den Sie sich verlassen können, haben wir uns verpflichtet, qualitativ hochwertige Softwaretests und Release-Pipelines aufzubauen. Bitte teilen Sie uns mit, ob Sie Pipelines für Tests, Charakterisierung und Software-Release übernehmen können. Wir geben den Grad der Produktionsbereitschaft klar an, und der Reifegrad der Testinfrastruktur wird für uns der wichtigste Entscheidungsfaktor sein.

Ziel: Abschluss der Projekte OpenTracing und OpenCensus (Fertigstellung bis 6. November)

Wir planen, am 6. September mit der Schließung alter Projekte zu beginnen, wenn das neue Projekt mit ihnen gleichwertig ist. Zwei Monate später, mit Parität aller Sprachen, planen wir, die Projekte OpenTracing und OpenCensus zu schließen. Es sollte so verstanden werden:

  • Die Repositorys werden eingefroren und es werden keine weiteren Änderungen vorgenommen.
  • Für das aktuelle Toolkit ist ein Supportzeitraum von zwei Jahren geplant.
  • Benutzer können mit denselben Tools auf das neue SDK aktualisieren.
  • Eine schrittweise Aktualisierung wird möglich sein.

Mitmachen

Wir freuen uns über jede Hilfe, da es sich um ein riesiges Projekt handelt. Wenn Sie daran interessiert sind, etwas über Beobachtbarkeit zu lernen, ist jetzt der richtige Zeitpunkt dafür!

Source: habr.com

Kommentar hinzufügen