La observabilidad importa: Mejorando el rendimiento de nuestra aplicación Node con OpenTelemetry

Rate this content
Bookmark

¿Alguna vez has considerado que cuando nos encontramos con términos como observabilidad y confiabilidad, nuestro instinto inicial suele atribuirlos únicamente a preocupaciones de SRE? Sin embargo, al examinar más de cerca, uno puede darse cuenta de que implementar la observabilidad en realidad está más alineado con el dominio de los desarrolladores. Después de todo, los desarrolladores son quienes implementan directamente la lógica real en nuestro código existente, ¿y quién mejor para entender y depurar su código que los propios desarrolladores? A través de esta sesión, enfatizaremos en comprender la importancia de la observabilidad específicamente desde la perspectiva de un desarrollador. Exploraremos algunas mejores prácticas que nos ayudarán a depurar eficazmente el rendimiento de nuestra aplicación Node y cómo la inclusión de frameworks de código abierto como OpenTelemetry podría ser beneficiosa para nosotros.

Yash Raj Verma
Yash Raj Verma
7 min
04 Apr, 2024

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Yash Rajavarma presenta la observabilidad y explica su importancia para los desarrolladores. Discute cómo OpenTelemetry puede potenciar las aplicaciones Node.js al proporcionar una instrumentación y gestión sencillas de los datos de telemetría. OpenTelemetry simplifica la implementación de la observabilidad y está diseñado para beneficiar a los desarrolladores.

1. Introducción a la Observabilidad y OpenTelemetry

Short description:

En esta parte, Yash Rajavarma se presenta a sí mismo y su pasión por la observabilidad. Explica la importancia de la observabilidad para los desarrolladores y cómo OpenTelemetry puede potenciar una aplicación Node.js. OpenTelemetry es un marco que permite la instrumentación y gestión sencilla de datos de telemetría, incluyendo trazas, métricas y registros. Proporciona instrumentación automática y admite varios formatos para exportar datos. OpenTelemetry simplifica el proceso de implementación de la observabilidad y está diseñado para beneficiar a los desarrolladores.

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.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Registro Multihilo con Pino
JSNation Live 2021JSNation Live 2021
19 min
Registro Multihilo con Pino
Top Content
Casi todos los desarrolladores piensan que agregar una línea de registro más no disminuiría el rendimiento de su servidor... ¡hasta que el registro se convierte en el mayor cuello de botella para sus sistemas! Creamos uno de los registradores JSON más rápidos para Node.js: pino. Una de nuestras decisiones clave fue eliminar todo el "transporte" a otro proceso (o infraestructura): redujo tanto el consumo de CPU como de memoria, eliminando cualquier cuello de botella del registro. Sin embargo, esto creó fricción y disminuyó la experiencia del desarrollador al usar Pino y los transportes en el proceso es la característica más solicitada por nuestro usuario.En la próxima versión 7, resolveremos este problema y aumentaremos el rendimiento al mismo tiempo: estamos introduciendo pino.transport() para iniciar un hilo de trabajo que puedes usar para transferir tus registros de forma segura a otros destinos, sin sacrificar ni el rendimiento ni la experiencia del desarrollador.
Diseño Dirigido por Dominio con Aplicaciones Vue
Vue.js London 2023Vue.js London 2023
14 min
Diseño Dirigido por Dominio con Aplicaciones Vue
Top Content
Introducción al Diseño Dirigido por Dominio- ¿Qué es DDD?- Principios clave de DDD- Beneficios de usar DDD en el desarrollo de aplicaciones webModelado de Dominio en Aplicaciones Vue 3- Cómo diseñar e implementar modelos de dominio en Vue 3- Estrategias para integrar la lógica de dominio con el modelo de datos reactivo de Vue y la arquitectura basada en componentesMejores Prácticas para Implementar DDD en Vue 3- Estrategias para organizar el código de una manera que siga los principios de DDD- Técnicas para reducir el acoplamiento entre la lógica de dominio y la lógica de la aplicación- Consejos para probar y depurar la lógica de dominio en las aplicaciones Vue 3
Observabilidad con diagnostics_channel y AsyncLocalStorage
Node Congress 2023Node Congress 2023
21 min
Observabilidad con diagnostics_channel y AsyncLocalStorage
Los productos de trazado modernos funcionan combinando diagnostics_channel con AsyncLocalStorage. Construyamos juntos un trazador para ver cómo funciona y qué puedes hacer para hacer que tus aplicaciones sean más observables.
Observabilidad para Microfrontends
DevOps.js Conf 2022DevOps.js Conf 2022
24 min
Observabilidad para Microfrontends
Los equipos están creciendo cada vez más siguiendo la arquitectura de microfrontends. La observabilidad para los equipos a gran escala se vuelve aún más importante para poder identificar posibles problemas en tiempo de ejecución, así como separar las responsabilidades. En esta presentación aprenderemos cómo lograrlo.
Cómo compartir código entre una aplicación web de React y una aplicación móvil de React Native en Monorepo
React Summit 2022React Summit 2022
7 min
Cómo compartir código entre una aplicación web de React y una aplicación móvil de React Native en Monorepo
Por lo general, crear aplicaciones web y móviles requiere diferentes conjuntos de tecnologías, y es bastante difícil compartir código. Esta charla mostrará cómo agregué una aplicación web de React y una aplicación móvil de React Native en el mismo monorepo utilizando Nx, y cómo optimicé el intercambio de código entre la aplicación web de React y la aplicación móvil de React Native.
Cómo Grafana Utiliza React para Potenciar el Mundo de la Observabilidad
React Summit 2023React Summit 2023
7 min
Cómo Grafana Utiliza React para Potenciar el Mundo de la Observabilidad
¿Por qué Grafana utiliza React para su frontend?
Cómo aprovechamos las características de React en Grafana
¿Cuáles son algunos puntos problemáticos que hemos encontrado al usar React en Grafana?
¿Cuáles son las lecciones aprendidas de adoptar React durante los últimos 5+ años?

Workshops on related topic

Más allá del marco de trabajo: Distribuye tu aplicación de escritorio como un profesional
JSNation 2023JSNation 2023
109 min
Más allá del marco de trabajo: Distribuye tu aplicación de escritorio como un profesional
WorkshopFree
Jonas Kruckenberg
Jonas Kruckenberg
Construir aplicaciones utilizando tecnología web es genial; sin embargo, a veces puedes encontrar limitaciones sin importar qué marco de trabajo elijas. Durante esta masterclass, hablaremos sobre cómo elegir un marco de trabajo, problemas comunes y cómo superarlos.
Tabla de contenidos- Introducción: La historia entrelazada de la Web y las aplicaciones- ¡Tantas tecnologías de aplicaciones de escritorio! ¿Cómo elijo una?- Problemas comunes y cómo pensar en las aplicaciones- Conclusión
Accesibilidad web en aplicaciones JavaScript
React Summit 2022React Summit 2022
161 min
Accesibilidad web en aplicaciones JavaScript
Workshop
Sandrina Pereira
Sandrina Pereira
A menudo vemos que JavaScript daña la accesibilidad de un sitio web. En esta masterclass, aprenderás cómo evitar errores comunes y cómo utilizar JS a tu favor para mejorar la accesibilidad de tus aplicaciones web.
En esta masterclass exploraremos múltiples ejemplos del mundo real con problemas de accesibilidad, y aprenderás cómo hacer que funcionen para las personas que utilizan un mouse o un teclado. También aprenderás cómo se utilizan los lectores de pantalla, ¡y te mostraré que no hay razón para tener miedo de usar uno!
Únete a mí y déjame mostrarte cómo la accesibilidad no limita tus soluciones o habilidades. ¡Al contrario, las hace más inclusivas!
Al final, serás capaz de:- Comprender los principios de WCAG y cómo están organizados- Conocer casos comunes en los que JavaScript es esencial para la accesibilidad- Crear enlaces, botones y elementos conmutables inclusivos- Utilizar regiones en vivo para errores y estados de carga- Integrar la accesibilidad en el flujo de trabajo de tu equipo de inmediato- Darte cuenta de que crear sitios web accesibles no es tan difícil como parece ;)
Construye una Biblioteca Universal de Datos Reactiva con Starbeam
JSNation 2023JSNation 2023
66 min
Construye una Biblioteca Universal de Datos Reactiva con Starbeam
WorkshopFree
Yehuda Katz
Yehuda Katz
Esta sesión se centrará en los bloques de construcción universales de Starbeam. Usaremos Starbeam para construir una biblioteca de datos que funcione en múltiples frameworks.Escribiremos una biblioteca que almacene en caché y actualice datos, y admita relaciones, ordenación y filtrado.En lugar de obtener datos directamente, funcionará con datos obtenidos de forma asíncrona, incluidos los datos obtenidos después de la representación inicial. Los datos obtenidos y actualizados a través de web sockets también funcionarán bien.Todas estas características serán reactivas, por supuesto.Imagina que filtras tus datos por su título y luego actualizas el título de un registro para que coincida con el filtro: cualquier resultado que dependa de los datos filtrados se actualizará para reflejar el filtro actualizado.En 90 minutos, construirás una increíble biblioteca de datos reactiva y aprenderás una nueva herramienta poderosa para construir sistemas reactivos. La mejor parte: la biblioteca funciona en cualquier framework, incluso si no piensas en (o dependes de) ningún framework al construirla.
Tabla de contenidos- Almacenar un registro obtenido en una celda- Almacenar múltiples registros en un Mapa reactivo- La iteración reactiva es una iteración normal- El filtrado reactivo es un filtrado normal- Obtener más registros y actualizar el Mapa- La ordenación reactiva es una ordenación normal (¿se está volviendo un poco repetitivo?)- Modelar la invalidación de la caché como datos- Bonus: relaciones reactivas
Construye aplicaciones Web3 con React
React Summit 2022React Summit 2022
51 min
Construye aplicaciones Web3 con React
WorkshopFree
Shain Dholakiya
Shain Dholakiya
El masterclass está diseñado para ayudar a los desarrolladores Web2 a comenzar a construir para Web3 utilizando el Hyperverse. El Hyperverse es un mercado abierto de módulos inteligentes construidos por la comunidad, auditados y fáciles de descubrir. Nuestro objetivo es hacer que sea fácil para los desarrolladores de React construir aplicaciones Web3 sin escribir una sola línea de código de contrato inteligente. Piensa en 'npm para contratos inteligentes'.
Aprende más sobre el Hyperverse aquí.
Repasaremos todos los conceptos básicos de blockchain/crypto que necesitas saber para comenzar a construir en el Hyperverse, por lo que no necesitas tener ningún conocimiento previo sobre el espacio Web3. Solo necesitas tener experiencia en React.