Fuzionarea OpenTracing și OpenCensus: drumul către convergență

Fuzionarea OpenTracing și OpenCensus: drumul către convergență

Autorii: Ted Young, Pritam Shah și „Comitetul pentru specificații tehnice” (Carlos Alberto, Bogdan Drutu, Sergey Kanzhelev și Yuri Shkuro).

Proiectul comun a primit numele: http://opentelemetry.io

Foarte, foarte pe scurt:

  • Creăm un nou set unificat de biblioteci și specificații pentru a permite observarea telemetriei. Acesta va unifica proiectele OpenTracing și OpenCensus, precum și va oferi un mod suportat pentru migrare.
  • Implementarea de referință pe Java va fi disponibilă pe 24 aprilie, lucrul la implementările în alte limbi va începe pe deplin din 8 mai 2019. Consultați programul puteți face acest lucru aici.
  • Până în septembrie 2019, se preconizează paritatea cu proiectele existente pentru C#, Golang, Java, NodeJS și Python. Ne așteaptă multă muncă, dar ne descurcăm dacă lucrăm în paralel. Dacă sunteți interesat să participați la acest proiect, vă rugăm să vă înscrieți și să ne spuneți cum ați dori să contribuiți.
  • Când implementarea în fiecare limbă va fi matură, proiectele OpenTracing și OpenCensus corespunzătoare vor fi închise. Aceasta înseamnă înghețarea vechilor proiecte, iar noul proiect va continua să susțină instrumentele existente timp de doi ani, folosind compatibilitatea înapoi.

Prezentarea proiectului

Fuzionarea OpenTracing și OpenCensus: drumul către convergență

Făcăm o fuziune! Obiectivul suprem este de a reuni proiectele OpenTracing și OpenCensus într-un singur proiect comun.
Nucleul noului proiect va fi un set de interfețe curate și bine gândite, inclusiv o asamblare tradițională de biblioteci care implementează aceste interfețe sub formă de așa-numite SDK-uri. Cireașa de pe tort vor fi standardele recomandate pentru date și protocoale de transport, inclusiv părțile comune ale infrastructurii.
Rezultatul va fi un sistem complet de telemetrie, potrivit pentru monitorizarea microservicelor și altor tipuri de sisteme distribuite moderne, compatibil cu majoritatea programelor OSS și comerciale fundamentale.

Evenimentele cheie

24.04 — Candidatul de referință este prezentat pentru revizuire.
8.05 — Se formează echipa care va începe lucrul în toate limbile.
20.05 — Lansarea oficială a proiectului la Kubecon Barcelona.
6.09 — Implementările în C#, Golang, Java, NodeJS și Python ating paritatea cu omologii lor.
6.11 — Finalizarea oficială a proiectelor OpenTracing și OpenCensus.
20.11 — Petrecerea de rămas bun cu ocazia încheierii proiectelor la Observability Summit, Kubecon San Diego.

Cronologia convergenței

Fuzionarea OpenTracing și OpenCensus: drumul către convergență

Migrarea pentru fiecare limbă include construirea SDK-ului pregătit pentru implementare în industrie, un set de instrumente pentru bibliotecile populare, documentație, CI, instrumente de compatibilitate inversă și închiderea proiectelor conexe OpenCensus și OpenTracing („apus”). Ne-am propus un obiectiv ambițios pentru septembrie 2019 - atingerea parității pentru limbile C#, Golang, Java, NodeJS și Python. Vom amâna data „apusului” până când toate limbile vor fi gata. Totuși, ar fi de preferat să evităm acest lucru.
Când revizuiți obiectivele, vă rugăm să luați în considerare participarea dvs. personală, anunțându-ne despre aceasta completând formularele de înregistrare, sau salutându-ne în chaturile proiectelor Gitter OpenTracing și OpenCensus. Puteți vizualiza programul sub forma unei infografii aici.

Obiectiv: prima versiune preliminară a specificației interlingvistice (finalizare până la 8 mai)

Este esențial să lucrăm împreună, chiar și atunci când lucrăm în paralel pe limbi diferite. Specificația interlingvistică oferă îndrumări pentru proiect. Pare plictisitor, dar aceasta garantează suportul unui sistem integrat care pare familiar, indiferent de limbajul de programare.

Cerințe obligatorii pentru prima versiune preliminară a specificației pentru limbajul X:

  • Definiții ale terminologiei comune.
  • Un model pentru descrierea tranzacțiilor distribuite, statisticilor și metricelor.
  • Clarificări asupra problemelor semnificative apărute în timpul implementării.

Acest obiectiv blochează restul lucrărilor, prima versiune preliminară trebuie finalizată până la 8 mai.

Obiectiv: prima versiune preliminară a specificației datelor (finalizare până la 6 iulie)

Specificația datelor definește un format comun de date pentru trasări și metrica, astfel încât datele exportate de toate procesele pot fi procesate de aceeași infrastructură de telemetrie, indiferent de procesul de generare a datelor. Aceasta include schema de date pentru modelul de trasare, descrisă în specificația interlingvistică. De asemenea, sunt incluse definițiile metadatelor pentru operațiunile comune, de care trasarea se folosește pentru capturare: de exemplu, solicitări HTTP, erori și cereri către baza de date. Aceste convenții semantice sunt exemple.

Prima versiune preliminară se bazează pe formatul actual de date OpenCensus și va conține următoarele:

  • Schema de date, care implementează specificația interlingvistică.
  • Definiții ale metadatelor pentru operațiunile comune.
  • Definiții JSON și Protobuf.
  • Implementarea clienților de referință.

Vă rugăm să rețineți că există, de asemenea, un protocol pe fir care răspândește trasări pe lățime de bandă, pe care dorim să-l standardizăm. Formatul de distribuție Trace-Context este dezvoltat prin W3C.

Scopul: paritate în toate limbile de bază suportate (finalizare până pe 6 septembrie)

Trebuie să atingem paritatea pentru ecosistemul lingvistic actual prin înlocuirea proiectelor vechi cu cele noi.

  • Definiții ale interfeței pentru trasare, metrici și distribuția contextului bazate pe specificația inter-lingvistică.
  • SDK-ul pregătit pentru utilizare, care implementează aceste interfețe, exportând Trace-Data. Dacă este posibil, SDK-ul va fi creat prin transferul unei implementări existente din OpenCensus.
  • Un set de instrumente pentru bibliotecile populare, acoperite în prezent în OpenTracing și OpenCensus.

Apreciem, de asemenea, compatibilitatea înapoi și dorim să asigurăm o tranziție lină de la proiectele existente.

  • Noua SDK va include mecanisme de compatibilitate cu interfețele actuale OpenTracing. Acestea vor permite instrumentelor OpenTracing învechite să coexiste cu instrumentele noi în același proces, permițând utilizatorilor să-și migreze treptat munca.
  • Odată ce noul SDK va fi gata, va fi creat un plan de actualizare pentru utilizatorii actuali OpenCensus. Asemenea OpenTracing, instrumentele învechite vor putea continua să funcționeze împreună cu cele noi.
  • Până în noiembrie, atât OpenTracing cât și OpenCensus vor fi închise pentru primirea modificărilor. Compatibilitatea cu instrumentele învechite va fi menținută timp de doi ani.

Crearea unui SDK de clasă mondială pentru fiecare limbă necesită un efort enorm, și acesta este cel mai mare lucru de care avem nevoie.

Scopul: documentația principală (finalizare până pe 6 septembrie)

Un factor critic de succes pentru orice proiect open-source este documentația. Vrem să avem documentație de primă clasă și resurse pentru formare; scriitorii noștri tehnici sunt cei mai activi dezvoltatori din proiect. Instruirea dezvoltatorilor pentru a observa corect software-ul este unul dintre cele mai importante impacturi pe care dorim să le avem asupra lumii.

Partea minim necesară pentru început include:

  • Orientarea proiectului.
  • Observabilitate 101.
  • Cum să începi.
  • Ghiduri pentru limbi (separate pentru fiecare).

Invităm scriitori de orice nivel! Noua noastră platformă se bazează pe Hugo, folosind o marcaj standard, așa că este foarte ușor să contribuiți.

Obiectiv: Registry v1.0 (finalizarea până pe 6 iulie)

Registry — un alt component critic, o versiune îmbunătățită OpenTracing Registry.

  • Ușor de găsit biblioteci, module, instalatori și alte componente.
  • Gestionare ușoară a componentelor Registry.
  • Puteți afla ce funcții SDK sunt disponibile în fiecare limbaj.

Dacă sunteți interesat de design, interfață și UX — avem un proiect excelent pentru participare personală.

Obiectiv: infrastructura pentru testarea și lansarea software-ului (finalizarea până pe 6 septembrie)

Pentru a continua să livrăm cod sigur pe care ne putem baza, avem o obligație de proiect pentru a crea canale de calitate pentru testarea și lansarea software-ului. Vă rugăm să ne anunțați dacă puteți gestiona canale pentru testare, măsurarea performanței și lansarea software-ului. Definim clar nivelul de pregătire pentru producție, iar maturitatea infrastructurii de testare va fi un factor determinant principal pentru noi.

Obiectiv: închiderea proiectelor OpenTracing și OpenCensus (finalizarea până pe 6 noiembrie)

Planificăm începerea închiderii proiectelor vechi începând cu 6 septembrie, dacă noul proiect ajunge la paritate cu acestea. Două luni mai târziu, la paritate pentru toate limbile, vom planifica închiderea proiectelor OpenTracing și OpenCensus. Aceasta ar trebui înțeleasă astfel:

  • depozitele vor fi înghețate, nu se vor mai face modificări.
  • pentru instrumentarul actual este planificat un termen de suport de doi ani.
  • utilizatorii vor putea să treacă la un nou SDK, folosind instrumentarul anterior.
  • va fi posibilă actualizarea treptată.

Alătură-te

Vom fi bucuroși de orice ajutor, deoarece este un proiect imens. Dacă sunteți interesat de observabilitate — acum este momentul!

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster