Hola a todos, soy Yash Rajavarma. Trabajo como investigador informático en la Universidad de Calgary, donde principalmente trabajo con sistemas distribuidos y estoy muy apasionado por el campo de la observabilidad. En los últimos meses, he estado involucrado en un proyecto, se llama OpenTelemetry, y en esta charla hablaré sobre Node.js y OpenTelemetry. Así que empecemos. En esta charla responderemos dos preguntas. La primera es, ¿por qué es importante la observabilidad para un desarrollador y cómo podemos potenciar una aplicación node con OpenTelemetry? Para responder a la primera pregunta, tendremos que retroceder en el tiempo y comprender que la evolución de nuestro sistema desde una perspectiva muy amplia, podemos decir que a medida que avanzamos en el tiempo, nuestra aplicación o sistema tiende a volverse cada vez más distribuido en la naturaleza, lo que resulta en esto. Este podría ser un ejemplo de cualquier aplicación moderna. Digamos, por ejemplo, una aplicación de comercio electrónico, donde un solo microservicio interactúa directa o indirectamente con múltiples microservicios dentro de una aplicación. Imagina que de repente algunos microservicios dejan de funcionar o imagina que hay una mayor latencia dentro de los microservicios, ya sabes, eso definitivamente no se parece a una mejor experiencia de usuario. Así que, a medida que avanzamos y, ya sabes, soy un gran fan de Marvel, hay una línea, con grandes sistemas distribuidos viene la gran responsabilidad de gestionarlos. Pero no te preocupes, la observabilidad está aquí para, ya sabes, encargarse del día. Es la capacidad de comprender el estado interno de nuestro sistema examinando su salida donde se encuentran los registros, las métricas y las trazas. Ahora podemos observar todo, ya sabes, y todo puede estar yendo bien como se esperaba, porque podemos observar todo el sistema y depurar eficientemente el rendimiento de nuestra aplicación identificando posibles cuellos de botella. Pero ¿qué está mal, ya sabes, es el problema. Aquí es donde las cosas comienzan a complicarse aún más y con eso me refiero, y con eso me refiero a que cuando miramos desde una perspectiva muy general de cualquier flujo de trabajo de observabilidad, ya sabes, el primer paso en el proceso es llamado instrumentación, ya sabes, es el proceso mediante el cual podemos realizar ciertos cambios en nuestro código fuente para que nuestra aplicación pueda emitir los datos de telemetría . El siguiente es el receptor, ya sabes, es muy simple. Recibe los datos que se capturan del código fuente. Luego viene el procesador, que generalmente usamos para filtrar o cambiar datos específicos según nuestros casos de uso. Y luego viene el exportador, que se utiliza para exportar los datos ¿A dónde? Al backend de observabilidad, ya sabes, desde una visión general muy amplia. Vemos que el primer paso, la instrumentación se alinea específicamente con el dominio del desarrollador y aquí está la razón. Porque nosotros, los desarrolladores, somos responsables de instrumentar el código para que pueda emitir datos de telemetría. Pero cada herramienta de observabilidad tiene su propio conjunto específico de reglas a las que se debe adherir durante todo el proceso. Si en el futuro decidimos salir del ecosistema, la impresión de registros se convierte en una preocupación importante. Y se convierte en tarea del desarrollador volver a instrumentar todo el código con aproximadamente, ya sabes, un 40% de código similar para un código base si queremos migrar a otras herramientas de observabilidad. Por lo tanto, implementar la observabilidad dentro de la aplicación es más un problema del desarrollador porque nosotros, los desarrolladores, tenemos que volver a instrumentar todo la aplicación una vez más. Ingresa OpenTelemetry. El salvador. Es un framework diseñado para crear y gestionar datos de telemetría, incluyendo trazas, métricas y registros de manera agnóstica al proveedor y a la herramienta. Proporciona instrumentación automática donde casi no se requieren cambios en el código y también viene con instrumentación manual para que si necesitamos que una parte específica emita los datos de telemetría, podemos usar la instrumentación manual en ese caso. Esta es una descripción típica de un recolector de OpenTelemetry, que se utiliza para, ya sabes, recibir, procesar y exportar los datos a varios destinos, para que, ya sabes, puedas recibir datos en múltiples formatos como Jager, Prometheus, ya sabes, y el protocolo de OpenTelemetry es el predeterminado, ya sabes, el lenguaje que se utiliza para, ya sabes, transferir datos de la aplicación al backend. Ahora, comenzar con OpenTelemetry Node.js es muy sencillo. Si eres un principiante, te diría que puedes comenzar con la instrumentación automática. Es muy sencillo. Solo tienes que seguir estos pasos y puedes consultar, ya sabes, el enlace a continuación. Comenzarás a entender en ese caso también. Entonces, OpenTelemetry no es solo para el software. Es para las personas. Es para los desarrolladores como nosotros.
Comments