Fusión de OpenTracing y OpenCensus: el camino hacia la convergencia

Fusión de OpenTracing y OpenCensus: el camino hacia la convergencia

Autores: Ted Young, Pritam Shah y el 'Comité de Especificaciones Técnicas' (Carlos Alberto, Bogdan Drutu, Sergey Kanzhelev y Yuri Shkuro).

El proyecto conjunto ha sido nombrado: http://opentelemetry.io

Muy, muy brevemente:

  • Estamos creando un nuevo conjunto unificado de bibliotecas y especificaciones para la observación de la telemetría. Esto combinará los proyectos OpenTracing y OpenCensus, y proporcionará una forma soportada para la migración.
  • La implementación de referencia en Java estará disponible el 24 de abril; el trabajo en implementaciones en otros lenguajes comenzará plenamente el 8 de mayo de 2019. Consultar el cronograma. puedes hacerlo aquí.
  • Para septiembre de 2019, se planea alcanzar paridad con los proyectos existentes para C#, Golang, Java, NodeJS y Python. Nos espera una gran cantidad de trabajo, pero lo haremos si trabajamos en paralelo. Si estás interesado en participar en este proyecto, por favor, regístrate y háznos saber cómo te gustaría contribuir.
  • Cuando la implementación en cada lenguaje sea madura, los proyectos correspondientes de OpenTracing y OpenCensus se cerrarán. Esto significa la congelación de los antiguos proyectos, mientras que el nuevo proyecto continuará manteniendo las herramientas existentes durante dos años, utilizando compatibilidad hacia atrás.

Visión general del proyecto

Fusión de OpenTracing y OpenCensus: el camino hacia la convergencia

¡Estamos fusionando! El objetivo principal es unir los proyectos OpenTracing y OpenCensus en un solo proyecto común.
El núcleo del nuevo proyecto será un conjunto de interfaces limpias y bien pensadas, incluyendo la distribución tradicional de bibliotecas que implementan estas interfaces en forma de SDK. La guinda del pastel serán los estándares recomendados para los datos y protocolos cableados, incluyendo las partes comunes de la infraestructura.
El resultado será un sistema de telemetría completo, adecuado para el monitoreo de microservicios y otros tipos de sistemas distribuidos modernos, compatible con la mayoría de las principales OSS y software comercial.

Eventos principales

24.04 – Candidato de referencia presentado para revisión.
8.05 – Se forma el equipo que comienza a trabajar en todos los lenguajes.
20.05 – Lanzamiento oficial del proyecto en Kubecon Barcelona.
6.09 – Las implementaciones en C#, Golang, Java, NodeJS y Python alcanzan paridad con sus análogos.
6.11 – Finalización oficial de los proyectos OpenTracing y OpenCensus.
20.11 – Fiesta de despedida en honor a la finalización de los proyectos en Observability Summit, Kubecon San Diego.

Cronología de la convergencia

Fusión de OpenTracing y OpenCensus: el camino hacia la convergencia

La migración para cada lenguaje incluye la construcción de un SDK listo para la implementación industrial, herramientas para bibliotecas populares, documentación, CI, medios de compatibilidad hacia atrás y el cierre de proyectos relacionados como OpenCensus y OpenTracing ("fin"). Tenemos un objetivo ambicioso para septiembre de 2019: alcanzar la paridad para los lenguajes C#, Golang, Java, NodeJS y Python. Aplazaremos la fecha del "fin" hasta que todos los lenguajes estén listos. Pero preferiblemente, debemos evitar esto.
Al revisar los objetivos, por favor considere su participación personal, háganoslo saber completando el formulario de registro, o saludando en los chats de Gitter de los proyectos OpenTracing y OpenCensus. Puede ver el cronograma en formato de infografía aquí.

Objetivo: primer borrador de la especificación interlingüística (finalización para el 8 de mayo)

Es importante trabajar de manera cohesiva, incluso cuando se trabaja en paralelo en diferentes lenguajes. La especificación interlingüística proporciona directrices para el proyecto. Suena prosaico, pero es una garantía de soporte para un sistema coherente que se siente familiar independientemente del lenguaje de programación.

Requisitos obligatorios para el primer borrador de la especificación para el lenguaje X:

  • Definiciones de terminología común.
  • Modelo para describir transacciones distribuidas, estadísticas y métricas.
  • Clarificaciones sobre cuestiones importantes que surgen en la implementación.

Este objetivo bloquea el resto del trabajo, el primer borrador debe completarse para el 8 de mayo.

Objetivo: primer borrador para la especificación de datos (finalización para el 6 de julio)

La especificación de datos define el formato de datos común para trazas y métricas, por lo que los datos exportados por todos los procesos pueden ser procesados por la misma infraestructura de telemetría independientemente del proceso que genera los datos. Esto incluye el esquema de datos para el modelo de trazado, que se detalla en la especificación interlingüística. También se incluyen definiciones de metadatos para las operaciones comunes que utiliza la trazabilidad para capturar: por ejemplo, solicitudes HTTP, errores y consultas a bases de datos. Estas convenciones semánticas son un ejemplo.

El primer borrador se basa en el formato de datos actual de OpenCensus y contendrá lo siguiente:

  • Esquema de datos que implementa la especificación interlingüística.
  • Definiciones de metadatos para operaciones comunes.
  • Definiciones de JSON y Protobuf.
  • Implementación de clientes de referencia.

Le pedimos que preste atención a que también existe un protocolo por cable que distribuye rastreos dentro de la banda, y que nos gustaría estandarizar. Formato de distribución Trace-Context se desarrolla a través de W3C.

Objetivo: paridad en todos los principales idiomas admitidos (finalización para el 6 de septiembre)

Debemos alcanzar la paridad para el ecosistema lingüístico actual reemplazando los proyectos antiguos por los nuevos.

  • Definiciones de la interfaz para rastreo, métricas y distribución de contexto basadas en una especificación interlingüística.
  • SDK listo para usar que implemente estas interfaces, exportando Trace-Data. Siempre que sea posible, el SDK será creado trasladando la implementación existente de OpenCensus.
  • Herramientas para las bibliotecas populares actualmente cubiertas en OpenTracing y OpenCensus.

También valoramos la compatibilidad hacia atrás y queremos asegurar una transición fluida desde los proyectos existentes.

  • El nuevo SDK contará con medios de compatibilidad hacia atrás con las interfaces actuales de OpenTracing. Esto permitirá que las herramientas obsoletas de OpenTracing funcionen junto con las nuevas herramientas en el mismo proceso, lo que permitirá a los usuarios migrar gradualmente sus desarrollos.
  • Cuando el nuevo SDK esté listo, se creará un plan de actualización para los actuales usuarios de OpenCensus. Al igual que con OpenTracing, las herramientas obsoletas podrán seguir funcionando junto con las nuevas.
  • En noviembre, tanto OpenTracing como OpenCensus cerrarán para recibir cambios. La compatibilidad hacia atrás con las herramientas obsoletas se mantendrá durante dos años.

Crear un SDK de primera clase para cada idioma requiere un gran esfuerzo, y precisamente en esto es en lo que más necesitamos.

Objetivo: documentación principal (finalización para el 6 de septiembre)

Un factor crítico para el éxito de cualquier proyecto de código abierto es la documentación. Queremos tener documentación de primera clase y recursos para la capacitación, nuestros escritores técnicos son los desarrolladores más activos del proyecto. Capacitar a los desarrolladores para la correcta observación del software es uno de los impactos más importantes que queremos tener en el mundo.

Las siguientes partes de la documentación son mínimamente necesarias para comenzar:

  • Orientación del proyecto.
  • Observabilidad 101.
  • Introducción.
  • Guías de lenguajes (uno para cada uno).

¡Invitamos a escritores de cualquier nivel! Nuestro nuevo sitio está basado en Hugo, utilizando un marcado común, así que es muy fácil contribuir.

Objetivo: Registro v1.0 (completado para el 6 de julio)

Registro: otro componente crítico, versión mejorada Registro OpenTracing.

  • Fácil encontrar bibliotecas, plugins, instaladores y otros componentes.
  • Gestión sencilla de los componentes del Registro.
  • Se puede averiguar qué funciones del SDK están disponibles en cada idioma.

Si estás interesado en diseño, parte de interfaz y UX, tenemos un excelente proyecto para participación personal.

Objetivo: infraestructura para pruebas y lanzamiento de software (completado para el 6 de septiembre)

Para que sigamos entregando código seguro en el que podamos confiar, tenemos un compromiso del proyecto para crear canales de calidad para pruebas y lanzamientos de software. Por favor háganos saber si puede encargarse de los canales para pruebas, mediciones de métricas y lanzamientos de software. Definimos claramente el nivel de preparación de producción, y la madurez de la infraestructura de pruebas será el principal factor determinante para nosotros.

Objetivo: cerrar los proyectos OpenTracing y OpenCensus (completado para el 6 de noviembre)

Planeamos comenzar el cierre de proyectos antiguos el 6 de septiembre, si un nuevo proyecto alcanza paridad con ellos. Dos meses después, al estar todos los idiomas en paridad, planeamos cerrar los proyectos OpenTracing y OpenCensus. Esto debe entenderse de la siguiente manera:

  • los repositorios serán congelados, no se realizarán más modificaciones.
  • se ha programado un período de soporte de dos años para las herramientas actuales.
  • los usuarios podrán actualizar a un nuevo SDK utilizando las herramientas anteriores.
  • será posible una actualización gradual.

Únete

Estaremos felices de recibir cualquier ayuda, ya que este es un gran proyecto. Si estás interesado en la observabilidad, ¡ahora es el momento!

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster