Fuzja OpenTracing i OpenCensus: droga do konwergencji

Fuzja OpenTracing i OpenCensus: droga do konwergencji

Autorzy: Ted Young, Pritam Shah oraz "Komitet Specyfikacji Technicznych" (Carlos Alberto, Bogdan Drutu, Sergey Kanjalev i Yuri Shkuro).

Wspólny projekt otrzymał nazwę: http://opentelemetry.io

Bardzo, bardzo krótko:

  • Tworzymy nowy zjednoczony zestaw bibliotek i specyfikacji do monitorowania telemetrii. Połączy projekty OpenTracing i OpenCensus, a także dostarczy wspierany sposób migracji.
  • Referencyjna implementacja w Javie będzie dostępna 24 kwietnia, prace nad implementacjami w innych językach rozpoczną się w pełni od 8 maja 2019 roku. Zapoznaj się z harmonogramem można tutaj.
  • Do września 2019 roku planujemy parytet z istniejącymi projektami dla C#, Golang, Java, NodeJS i Python. Czeka nas mnóstwo pracy, ale damy sobie radę, jeśli będziemy pracować równolegle. Jeśli jesteś zainteresowany udziałem w tym projekcie, zarejestruj się i daj nam znać, w jaki sposób chciałbyś pomóc.
  • Gdy implementacja w każdym języku osiągnie dojrzałość, odpowiednie projekty OpenTracing i OpenCensus zostaną zamknięte. Oznacza to zamrożenie starych projektów, a nowy projekt będzie kontynuował wsparcie dla istniejącego narzędzia przez dwa lata, wykorzystując kompatybilność wsteczną.

Przegląd projektu

Fuzja OpenTracing i OpenCensus: droga do konwergencji

Rozpoczynamy fuzję! Najwyższym celem jest połączenie projektów OpenTracing i OpenCensus w jeden wspólny projekt.
Rdzeniem nowego projektu będą zestawy czystych i przemyślanych interfejsów, w tym tradycyjna budowa bibliotek, które realizują te interfejsy w tzw. SDK. Wisienką na torcie będą rekomendowane standardy dla danych i protokołów przewodowych, w tym wspólne elementy infrastruktury.
Rezultatem będzie kompleksowy system telemetrii odpowiedni do monitorowania mikrousług i innych typów nowoczesnych systemów rozproszonych, zgodny z większością głównych OSS i komercyjnych bazowych programów.

Główne wydarzenia

24.04 — Referencyjny kandydat przekazany do przeglądu.
8.05 — Tworzymy zespół, który rozpoczyna prace w wszystkich językach.
20.05 — Oficjalne uruchomienie projektu na Kubecon Barcelona.
6.09 — Implementacje w C#, Golang, Java, NodeJS i Python osiągają parytet z odpowiednikami.
6.11 — Oficjalne zakończenie projektów OpenTracing i OpenCensus.
20.11 — Pożegnalna impreza z okazji zakończenia projektów na Observability Summit, Kubecon San Diego.

Chronologia konwergencji

Fuzja OpenTracing i OpenCensus: droga do konwergencji

Migracja dla każdego języka obejmuje przygotowanie SDK gotowego do wdrożenia przemysłowego, narzędzi do popularnych bibliotek, dokumentację, CI, środki zapewniające zgodność wsteczną oraz zamknięcie związanych projektów OpenCensus i OpenTracing („zmierzch”). Ustawiliśmy ambitny cel na wrzesień 2019 roku — osiągnięcie parytetu dla języków C#, Golang, Java, NodeJS i Python. Będziemy przesuwać datę „zmierzchu”, aż wszystkie języki będą gotowe. Wolelibyśmy jednak tego uniknąć.
Przy przeglądaniu celów, prosimy rozważyć swój osobisty wkład, informując nas o tym poprzez wypełnienie formularza rejestracyjnego, lub witając się na czatach Gitter projektów OpenTracing i OpenCensus. Infografikę z harmonogramem można zobaczyć tutaj.

Cel: pierwszy roboczy projekt specyfikacji międzyjęzykowej (zakończenie do 8 maja)

Ważne jest, aby pracować spójnie, nawet przy równoległych pracach w różnych językach. Specyfikacja międzyjęzykowa zapewnia wytyczne dla projektu. Brzmi to prozaicznie, ale to gwarancja wsparcia integralności systemu, który wydaje się znajomy niezależnie od języka programowania.

Wymogi obowiązkowe dla pierwszego roboczego projektu specyfikacji dla języka X:

  • Definicje wspólnej terminologii.
  • Model do opisu rozproszonych transakcji, statystyk i metryk.
  • Wyjaśnienia ważnych kwestii, które pojawiły się w trakcie realizacji.

Ten cel blokuje inne prace, pierwszy projekt musi być ukończony do 8 maja.

Cel: pierwszy roboczy projekt specyfikacji danych (zakończenie do 6 lipca)

Specyfikacja danych określa wspólny format danych dla śladów i metryk, dzięki czemu dane eksportowane przez wszystkie procesy mogą być przetwarzane przez tę samą infrastrukturę telemetrii niezależnie od procesu generowania danych. Wchodzi tu schemat danych dla modelu śledzenia, opisany w specyfikacji międzyjęzykowej. Zawiera również definicje metadanych dla wspólnych operacji, które śledzenie wykorzystuje do przechwytywania: na przykład, zapytania HTTP, błędy i zapytania do bazy danych. Te umowy semantyczne są przykładem.

Pierwszy roboczy projekt oparty jest na obecnym formacie danych OpenCensus i będzie zawierał następujące:

  • Schemat danych wdrażający specyfikację międzyjęzykową.
  • Definicje metadanych dla wspólnych operacji.
  • Definicje JSON i Protobuf.
  • Wdrożenie standardowych klientów.

Prosim o uwagę, że istnieje również protokół przewodowy, który rozprowadza śledzenia wewnętrznie, i który chcielibyśmy również ustandaryzować. Format dystrybucji Trace-Context jest rozwijany przez W3C.

Cel: parytet we wszystkich głównych wspieranych językach (zakończenie do 6 września)

Musimy osiągnąć parytet dla aktualnego ekosystemu językowego, zastępując stare projekty nowymi.

  • Definicje interfejsu dla śledzenia, metryk i dystrybucji kontekstu oparte na specyfikacji międzyjęzyковой.
  • Gotowy do użycia SDK, który realizuje te interfejsy i eksportuje Trace-Data. Tam, gdzie to możliwe, SDK będzie tworzony poprzez przeniesienie istniejącej realizacji z OpenCensus.
  • Narzędzia dla popularnych bibliotek obejmowanych obecnie przez OpenTracing i OpenCensus.

Cenimy również zgodność wstecz i chcemy zapewnić płynne przejście z istniejących projektów.

  • W nowym SDK znajdą się środki zgodności wstecznej z obecnymi interfejsami OpenTracing. Umożliwią one przestarzałym narzędziom OpenTracing współpracę z nowymi narzędziami w tym samym procesie, co pozwoli użytkownikom stopniowo przenosić swoje prace.
  • Po ukończeniu nowego SDK zostanie stworzony plan aktualizacji dla obecnych użytkowników OpenCensus. Podobnie jak w przypadku OpenTracing, przestarzałe narzędzia będą mogły nadal działać razem z nowymi.
  • Do listopada zarówno OpenTracing, jak i OpenCensus będą zamknięte na przyjmowanie zmian. Zgodność wsteczna z przestarzałymi narzędziami będzie wspierana przez dwa lata.

Stworzenie najlepszego w swojej klasie SDK dla każdego języka wymaga ogromnej pracy, a o to właśnie najbardziej potrzebujemy.

Cel: podstawowa dokumentacja (zakończenie do 6 września)

Krytycznym czynnikiem sukcesu każdego projektu z otwartym kodem źródłowym jest dokumentacja. Chcemy mieć dokumentację najwyższej jakości i narzędzia do nauki, nasi techniczni pisarze są najbardziej aktywnymi deweloperami w projekcie. Nauka programistów właściwego monitorowania oprogramowania to jeden z najważniejszych wpływów, który chcemy wywrzeć na świat.

Minimalnie potrzebne do rozpoczęcia są następujące części dokumentacji:

  • Orientacja projektu.
  • Obserwowalność 101.
  • Wprowadzenie.
  • Podręczniki dotyczące języków (osobno dla każdego).

Zapraszamy pisarzy na każdym poziomie! Nasza nowa strona opiera się na Hugo, używając zwykłego formatu, więc łatwo jest wnieść swój wkład.

Cel: Registry v1.0 (zakończenie do 6 lipca)

Registry — kolejny kluczowy komponent, ulepszona wersja OpenTracing Registry.

  • Łatwo znaleźć biblioteki, wtyczki, instalatory i inne komponenty.
  • Łatwe zarządzanie komponentami Registry.
  • Można dowiedzieć się, jakie funkcje SDK są dostępne w każdym języku.

Jeśli interesujesz się designem, interfejsem i UX — mamy świetny projekt do osobistego udziału.

Cel: infrastruktura do testowania i wydawania oprogramowania (zakończenie do 6 września)

Abyśmy mogli nadal dostarczać bezpieczny kod, na którym można polegać, mamy projektowe zobowiązanie do stworzenia wysokiej jakości pipeline'ów do testowania i wydawania oprogramowania. Prosimy daj znać, jeśli możesz zająć się pipeline'ami do testowania, pomiaru wydajności i wydania oprogramowania. Wyraźnie określamy gotowość produkcji, a dojrzałość infrastruktury testowej będzie kluczowym czynnikiem dla nas.

Cel: zamknięcie projektów OpenTracing i OpenCensus (zakończenie do 6 listopada)

Planujemy rozpoczęcie zamykania starych projektów od 6 września, jeśli nowy projekt osiągnie z nimi parytet. Dwa miesiące później, przy parytecie wszystkich języków, planujemy zamknięcie projektów OpenTracing i OpenCensus. Należy to rozumieć w ten sposób:

  • repozytoria będą zamrożone, wprowadzanie poprawek nie będzie już możliwe.
  • dla obecnych narzędzi planowany jest dwuletni okres wsparcia.
  • użytkownicy będą mogli zaktualizować się do nowego SDK, korzystając z dotychczasowych narzędzi.
  • będzie możliwe stopniowe aktualizowanie.

Dołącz do nas

Będziemy wdzięczni za wszelką pomoc, ponieważ to ogromny projekt. Jeśli chcesz dowiedzieć się więcej o obserwowalności — teraz jest najlepszy moment!

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster