Łączenie OpenTracing i OpenCensus: droga do konwergencji

Łączenie OpenTracing i OpenCensus: droga do konwergencji

Autorzy: Ted Young, Pritam Shah i Komitet Specyfikacji Technicznych (Carlos Alberto, Bogdan Drutu, Sergei Kanzhelev i Yuri Shkuro).

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

Bardzo, bardzo krótko:

  • Tworzymy nowy, ujednolicony zestaw bibliotek i specyfikacji możliwości monitorowania telemetrycznego. Połączy projekty OpenTracing i OpenCensus i zapewni obsługiwaną ścieżkę migracji.
  • Referencyjna implementacja w Javie będzie dostępna już 24 kwietnia, natomiast prace nad wdrożeniami w innych językach rozpoczną się w całości 8 maja 2019 roku. Zobacz harmonogram może tu być.
  • Do września 2019 r. planowane jest zapewnienie zgodności z istniejącymi projektami dla języków C#, Golang, Java, NodeJS i Python. Przed nami dużo pracy, ale poradzimy sobie, jeśli będziemy działać równolegle. Jeśli jesteś zainteresowany udziałem w tym projekcie, zarejestruj się i daj nam znać, w jaki sposób chcesz wnieść swój wkład.
  • Po osiągnięciu dojrzałości wdrożenia w każdym języku odpowiednie projekty OpenTracing i OpenCensus zostaną zamknięte. Oznacza to, że stare projekty zostaną zamrożone, a nowy projekt będzie nadal przez dwa lata wspierał istniejące narzędzia z wykorzystaniem kompatybilności wstecznej.

Przegląd projektu

Łączenie OpenTracing i OpenCensus: droga do konwergencji

Robimy fuzję! Ostatecznym celem jest połączenie projektów OpenTracing i OpenCensus w jeden wspólny projekt.
Trzon nowego projektu stanowić będzie zestaw przejrzystych i przemyślanych interfejsów, w tym tradycyjny montaż bibliotek realizujących te interfejsy w postaci tzw. SDK. Wisienką na torcie będą rekomendowane standardy protokołów transmisji danych i przewodów, w tym części wspólnych infrastruktury.
Rezultatem będzie kompletny system telemetryczny odpowiedni do monitorowania mikrousług i innych typów nowoczesnych systemów rozproszonych, kompatybilny z większością głównych systemów OSS i komercyjnego oprogramowania backendowego.

Najważniejsze wydarzenia

24.04 — Kandydat referencyjny przesłany do przeglądu.
8.05 — Tworzy się zespół i rozpoczyna pracę we wszystkich językach.
20.05 — Oficjalna inauguracja projektu na Kubeconie w Barcelonie.
6.09 - Implementacje w językach C#, Golang, Java, NodeJS i Python osiągają poziom odpowiedników.
6.11 - Oficjalne zakończenie projektów OpenTracing i OpenCensus.
20.11 — Impreza pożegnalna z okazji zakończenia projektów podczas Observability Summit, Kubecon San Diego.

Kalendarium konwergencji

Łączenie OpenTracing i OpenCensus: droga do konwergencji

Migracja dla każdego języka obejmuje gotową do produkcji wersję SDK, narzędzia dla popularnych bibliotek, dokumentację, CI, narzędzia zapewniające kompatybilność wsteczną oraz zamknięcie powiązanych projektów OpenCensus i OpenTracing („zachód słońca”). Na wrzesień 2019 postawiliśmy sobie ambitny cel – osiągnięcie parytetu dla języków C#, Golang, Java, NodeJS i Python. Przesuniemy datę ostateczną, dopóki wszystkie języki nie będą gotowe. Ale lepiej tego unikać.
Przeglądając cele prosimy o rozważenie swojego osobistego zaangażowania, daj nam znać wypełniając formularz rejestracyjnylub witając się na czatach Gitter projektów OtwórzTracing и Otwarty Spis Ludności. Wykres można wyświetlić w formie infografiki tutaj.

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

Ważne jest, aby pracować spójnie, nawet jeśli pracujemy równolegle w różnych językach. Specyfikacja międzyjęzykowa zawiera wskazówki dotyczące projektu. Brzmi prozaicznie, ale gwarantuje wsparcie dla spójnego systemu, który wydaje się znajomy niezależnie od języka programowania.

Obowiązkowe wymagania dotyczące pierwszego projektu specyfikacji dla języka X:

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

Ten cel blokuje dalszą część prac, pierwszy projekt musi być gotowy do 8 maja.

Cel: Pierwszy projekt specyfikacji danych (ukończenie do 6 lipca)

Specyfikacja danych definiuje wspólny format danych dla śladów i metryk, dzięki czemu dane eksportowane przez wszystkie procesy mogą być przetwarzane przez tę samą infrastrukturę telemetryczną niezależnie od procesu generowania danych. Obejmuje to schemat danych dla modelu śledzenia opisany w specyfikacji międzyjęzykowej. Uwzględniono także definicje metadanych dla typowych operacji używanych przez śledzenie do przechwytywania, takich jak żądania HTTP, błędy i zapytania do bazy danych. Te konwencje semantyczne są przykładem.

Pierwsza wersja robocza opiera się na bieżącym formacie danych OpenCensus i będzie zawierać następujące elementy:

  • Schemat danych, który implementuje specyfikację międzyjęzykową.
  • Definicje metadanych dla typowych operacji.
  • Definicje JSON i Protobuf.
  • Implementacja klientów referencyjnych.

Należy pamiętać, że istnieje również protokół przewodowy, który dystrybuuje ślady w paśmie, który również chcielibyśmy ujednolicić. Forma dystrybucji Kontekst śledzenia opracowany przez W3C.

Cel: równość we wszystkich głównych obsługiwanych językach (zakończenie do 6 września)

Musimy osiągnąć równość w obecnym ekosystemie językowym, zastępując stare projekty nowymi.

  • Definicje interfejsów do śledzenia, metryk i propagacji kontekstu w oparciu o specyfikację międzyjęzykową.
  • Gotowy do użycia pakiet SDK, który implementuje te interfejsy i eksportuje dane Trace. Tam, gdzie to możliwe, zestaw SDK zostanie utworzony poprzez przeniesienie istniejącej implementacji z OpenCensus.
  • Zestaw narzędzi dla popularnych bibliotek obecnie objętych OpenTracing i OpenCensus.

Cenimy także kompatybilność wsteczną i chcemy zapewnić płynne przejście z istniejących projektów.

  • Nowy SDK będzie wstecznie kompatybilny z obecnymi interfejsami OpenTracing. Umożliwią one działanie starszych narzędzi OpenTracing wraz z nowymi narzędziami w tym samym procesie, umożliwiając użytkownikom migrację swojej pracy w miarę upływu czasu.
  • Kiedy nowy pakiet SDK będzie gotowy, dla obecnych użytkowników OpenCensus zostanie utworzony plan aktualizacji. Podobnie jak w przypadku OpenTracing, starsze narzędzia będą mogły nadal współpracować z nowymi.
  • Do listopada zarówno OpenTracing, jak i OpenCensus nie będą mogły akceptować zmian. Zgodność wsteczna ze starszymi narzędziami będzie obsługiwana przez dwa lata.

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

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

Dokumentacja jest kluczowym czynnikiem sukcesu każdego projektu open source. Zależy nam na najwyższej klasy dokumentacji i narzędziach szkoleniowych, a nasi autorzy tekstów technicznych są najbardziej aktywnymi programistami w projekcie. Nauczanie programistów, jak prawidłowo monitorować oprogramowanie, to jeden z najważniejszych wpływów, jaki chcemy wywrzeć na świat.

Aby rozpocząć, wymagane są następujące dokumenty:

  • Orientacja projektu.
  • Obserwowalność 101.
  • Początek pracy.
  • Przewodniki językowe (dla każdego osobno).

Zapraszamy pisarzy na każdym poziomie! Nasza nowa witryna opiera się na Hugo i używa zwykłych znaczników, więc wniesienie wkładu jest dość łatwe.

Cel: Rejestr w wersji 1.0 (ukończenie do 6 lipca)

Rejestr - kolejny krytyczny komponent, ulepszona wersja Rejestr OpenTracing.

  • Łatwo jest znaleźć biblioteki, wtyczki, instalatory i inne komponenty.
  • Łatwe zarządzanie komponentami rejestru.
  • Możesz dowiedzieć się, które funkcje pakietu SDK są dostępne w każdym języku.

Jeśli interesuje Cię projektowanie, interfejs i UX, mamy doskonały projekt do osobistego udziału.

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

Aby mieć pewność, że w dalszym ciągu będziemy dostarczać bezpieczny kod, na którym możesz polegać, zobowiązaliśmy się projektowo do tworzenia wysokiej jakości potoków testowania i wydawania oprogramowania. Daj nam znać, jeśli możesz zająć się procesami testowania, charakteryzowania i wydawania oprogramowania. Jasno wskazujemy poziom gotowości produkcyjnej, a głównym czynnikiem decydującym będzie dla nas dojrzałość infrastruktury testowej.

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

Zamykanie starych projektów planujemy rozpocząć 6 września, jeśli nowy projekt osiągnie z nimi poziom. 2 miesiące później, przy zachowaniu parytetu wszystkich języków, planujemy zamknąć projekty OpenTracing i OpenCensus. Należy to rozumieć w ten sposób:

  • repozytoria zostaną zamrożone i nie zostaną wprowadzone żadne dalsze zmiany.
  • W obecnym zestawie narzędzi zaplanowano dwuletni okres wsparcia.
  • użytkownicy będą mogli dokonać aktualizacji do nowego pakietu SDK przy użyciu tych samych narzędzi.
  • Możliwa będzie stopniowa aktualizacja.

Dołącz teraz

Będziemy wdzięczni za każdą pomoc, ponieważ jest to ogromny projekt. Jeśli chcesz dowiedzieć się więcej o obserwowalności, teraz jest odpowiedni czas!

Źródło: www.habr.com

Dodaj komentarz