Seleccionar página

Observabilidad y monitorización de sistemas: el dato, la nueva materia prima

Hoy en día no cabe duda de que el dato es la nueva materia prima para grandes y medianas empresas. Poder disponer de información de nuestros sistemas web y aplicaciones en todo momento, es esencial para maximizar el rendimiento y la disponibilidad de aplicaciones, y tener una respuesta rápida ante incidencias.

En este artículo, hablaremos de las pruebas de Observabilidad y Monitorización, que son imprescindibles para garantizar el funcionamiento efectivo, seguro y confiable de los sistemas. Proporcionan información crítica que permite a las organizaciones detectar, diagnosticar y resolver problemas de manera más eficiente, optimizar el rendimiento y planificar para el futuro. Además, son esenciales para cumplir con requisitos normativos y garantizar la seguridad de los sistemas y los datos.

A nivel empresa, las herramientas que elijamos para observar y monitorizar nuestros sistemas deben cumplir con estos objetivos. ¿Quieres saber cómo elegir las adecuadas?

Sigue leyendo!

Conceptos básicos sobre Observabilidad

En un partido de tenis, siempre pensamos que el golpe de la pelota va a ser el correcto, pero a veces de forma inesperada, ésta golpea el borde de la red. Esta metáfora refleja la naturaleza a veces impredecible del software: al igual que la pelota puede ir hacia adelante o hacia atrás, las aplicaciones pueden comportarse de manera inesperada, generando costes e incluso pérdidas importantes para las empresas.

La capacidad de entender y controlar lo que está sucediendo en nuestros sistemas se vuelve crucial para poder tomar medidas preventivas.

Para empezar, veamos algunos conceptos básicos que hay que conocer:

  • Podemos definir la Observabilidad como la capacidad de comprender lo que está pasando en un sistema complejo, y si es posible, en tiempo real.
  • Por otra parte, la Controlabilidad sería la propiedad que indica si el comportamiento de un sistema puede ser controlado por medio de sus entradas.
  • Y por último, la Monitorización sería la capacidad de interpretar datos y alertar sobre desviaciones respecto a la salida esperada.

Veamos de una manera práctica la aplicación de estas definiciones con un ejemplo: Pensemos en un conductor de un coche.

La Observabilidad sería la capacidad que tiene el conductor de ver el estado de la carretera, y si puede ir más rápido o menos rápido. La Controlabilidad serían los pedales del freno y aceleración: ante la acción de pisar el freno o de pisar el acelerador, obtenemos una respuesta de que el coche reduzca la velocidad o aumente. La Monitorización serían las alertas que muestra el coche, bien porque nos estemos quedando sin gasolina, porque una rueda haya pinchado y esté disminuyendo la presión etc. Son alertas que nos avisan para actuar sobre el coche y corregir desviaciones.

En el mundo de la tecnología, estas capacidades se traducen en entender lo que está sucediendo en nuestras aplicaciones, controlar su comportamiento y recibir alertas sobre posibles problemas. En este sentido, el concepto de trazas, logs y métricas se convierten en elementos fundamentales para una monitorización efectiva, que debemos conocer:

  • Logs: Representan eventos discretos y enriquecidos con contexto, fundamentales para detectar errores.
  • Métricas: Recopilación de datos mostrados en gráficos o contadores que ayudan a tomar decisiones basadas en el rendimiento.
  • Traces: Representación visual del ciclo de vida de una petición, esencial para entender el rendimiento y depurar.

 

Maximizando el rendimiento y la disponibilidad

La adquisición de herramientas de Observabilidad debe buscar maximizar el rendimiento y la disponibilidad de las aplicaciones, entendiendo cuáles son los objetivos de la empresa.

Por ejemplo, puede ser importante para nuestra organización monitorizar aspectos como el alojamiento, la red de entrega de contenido, la optimización del código, o la compatibilidad con dispositivos móviles. A nivel de aplicación o de web, podemos considerar monitorizar la infraestructura física y virtual, el ancho de banda, cambios que se realizan, logs, direcciones IP, etcétera. Dependerá al fin y al cabo de las prioridades y objetivos de la organización.

Pero antes de elegir las herramientas en las que vamos a apoyarnos en nuestras prácticas de Observabilidad y Monitorización, debemos tener en cuenta tres principios fundamentales:

  • Curación y Partición: Solo debemos medir lo que es útil. Al igual que no instalaríamos cámaras de vigilancia en una calle poco transitada, no deberíamos medir datos que no aporten valor a nuestro entendimiento del sistema, pues obtendremos información inservible y, además, consumirá recursos innecesarios.
  • Democratización: La información debe ser comprensible para todos. No sirve de nada tener datos valiosos si solo unos pocos pueden entenderlos. La información debe presentarse además de manera accesible.
  • Eficiencia y Velocidad: La información debe ayudarnos a identificar problemas antes de que se conviertan en errores. La capacidad de anticipar problemas y actuar rápidamente es esencial.

 

Qué Herramientas de Observabilidad elegir

Existen muchas herramientas en el mercado y como decíamos, la elección de la correcta dependerá de los objetivos y el entorno específico de cada empresa.

En líneas generales, nuestra elección debería tener en cuenta, además de los tres principios anteriores, que dichas herramientas nos proporcionen tiempos rápidos de respuesta y capacidad de escalabilidad. Y deberíamos asegurarnos de su consumo, puesto que podría perjudicar el rendimiento de las propias aplicaciones a monitorizar.

Hay herramientas que ayudan a recopilar datos, otras que permiten el traceado de las diferentes acciones de los servicios involucrados en el sistema, y por último las que nos van a proporcionar información de los logs del sistema y que nos facilitarán aquellos errores que se producen en nuestros desarrollos. La elección de éstas y la configuración de manera conjunta permitirán a nuestra organización disponer de toda la información necesaria de cómo se está comportando su web/aplicación. De esta manera podremos medir tiempos, corregir errores, administrar contenedores, acciones con kubernetes, automatizar tareas operativas, facilitar despliegues, escalar aplicaciones… Con la ayuda de la inteligencia artificial y el machine learning podremos además sacar conclusiones para optimizar conclusiones de pruebas A/B, mejorar el rendimiento, etc.

En el vídeo que os dejamos al final se muestran una gran cantidad de herramientas como Grafana, DataDog, Splunk que permiten realizar la recuperación de registros y datos y realizar un seguimiento distribuido entre otras cosas. NextData, Elasticsearch, Kamon son herramientas que permitirán detectar la zona de falla. Otras mayoritariamente permitirán realizar una supervisión del rendimiento del sistema, y ahí destaca Dynatrace, Collectd o Zipkin, o de las aplicaciones donde se ejecutan los contenedores, destacando Jaeger y Kardia. Todas las mostradas disponen de una versión OpenSource que podrá evolucionar a una versión premium en función de la volumetría de datos recogida, tiempo de mantenimiento de datos, número de licencias, etc.

Por último, hay que tener en cuenta que estas herramientas evolucionan y mejoran cada día, por lo que también es importante mantenerlas actualizadas, monitorizar nuevas tecnologías por si surgen cambios a nivel tecnológico, y realizar auditorías periódicas para saber si la vigilancia de la infraestructura es la adecuada en cada momento.

Conclusiones finales: Más allá de la Observación, la Acción

La Observabilidad y Monitorización de sistemas es esencial en el mundo digital actual. Desde maximizar el rendimiento hasta anticipar problemas y mejorar la eficiencia, estas prácticas son la clave para garantizar que nuestras aplicaciones operen de manera óptima.

No obstante, la monitorización no sólo se trata de observar, sino de tomar medidas. Hay que pasar a la Acción. De esta manera, vamos a poder revisar los alcances del proyecto, reforzar lo que se hace bien y reprogramar actividades que no se estén realizando de manera correcta.

Como desarrolladores y profesionales de TI, debemos tener en cuenta las herramientas disponibles a nuestro alcance para mantenernos a la vanguardia. Pese a los costes iniciales de configuración de dichas herramientas, y a los pagos por uso, conseguir información en tiempo real a través de la monitorización de nuestros sistemas, poder actuar de manera temprana en solucionar fallos sistemáticos e incluso predecirlos antes de que ocurran, facilitará una respuesta rápida y eficaz que sin duda minimizará pérdidas para la empresa.

Recuerda que una caída de una aplicación es tiempo de indisponibilidad, y eso puede ser más costoso que el precio de la herramienta. 

El precio de la luz es menor que el coste de la oscuridad.

 

Si quieres profundizar en el tema, te dejo el vídeo de mi charla 101PanelTechDays, en el que además de repasar todo lo comentado en el artículo, muestro al final una implementación práctica con un ejemplo de cuatro servicios en diferentes lenguajes, y los resultados obtenidos utilizando colectores como Jaeger y Temp bajo diferentes circunstancias en un entorno real.

 


En Panel realizamos pruebas de Observabilidad y Monitorización de Sistemas en nuestros servicios de QX Experience y Cloud & Infraestructure Services. Si quieres saber cómo, no dudes en contactar con nosotros.

Fernando Simón

Fernando Simón

Fernando es Ingeniero QA en la unidad de QX Experience de Panel Sistemas. Puedes visitar su perfil en Linkedin

Déjanos tu comentario

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Share This