Observabilidad cloud, qué es y en qué se diferencia de la monitorización

4min

El concepto de observabilidad, introducido por el ingeniero húngaro-americano Rudolf E. Kálmán, indica la capacidad de inferir el estado interno de un sistema en función de sus salidas. En otras palabras, un sistema es observable cuando, a la vista de sus salidas, podemos inferir cómo funciona y, en el caso de que se haya producido un fallo, entender qué ha pasado.

En un sistema informático, la ventaja de la observabilidad es precisamente la de conocer por qué se ha producido un fallo, dando más información y herramientas para dar con la solución. Esta capacidad de saber qué sucede es posible a través de métricas, registros (logs) y seguimiento (trazas). Un sistema cloud native es (o debe ser), por propia naturaleza, observable.

Índice

Por qué la monitorización no es suficiente

La monitorización es el proceso por el que se detectan y evitan fallos en los procesos. Una aplicación bien monitorizada debería poder identificar a tiempo cualquier indicación de fallo. De esta manera, será posible reaccionar a tiempo y mitigar o evitar el error, aunque esto último no siempre es posible. Hay ocasiones en las que la monitorización nos sirve para arreglar las cosas a posteriori.

Por medio de la monitorización se realiza un seguimiento del estado del sistema, de la infraestructura y los subsistemas necesarios, para garantizar que sean fiables, estables y que puedan cumplir con sus funciones como se espera.

La observabilidad va más allá y responde a la pregunta: ¿Qué está pasando dentro del sistema?

Para ser observable, un sistema debe producir datos suficientes y ponerlos a disposición de operadores o herramientas de observabilidad. Así, los equipos de TI y DevOps pueden encontrar exactamente dónde se producen los problemas sin gastar tiempo o energía en ejecutar pruebas.

Además de comprender el estado actual del sistema, la observabilidad permite predecir cómo se comportará en el futuro y diagnosticar los problemas. Como dijimos anteriormente, esto se hará mediante una combinación de registros, métricas, rastreo y otras formas de salida de datos.

Ejemplos de herramientas de observabilidad: agregadores de registros, plataformas de métricas y herramientas de seguimiento distribuido. Estas herramientas recopilan y analizan datos de los diferentes sistemas en toda la pila y proporcionan información sobre su estado y comportamiento internos. La observabilidad es crucial para mantener el rendimiento y la fiabilidad de los sistemas modernos, pero no es lo mismo que la monitorización ni que la telemetría.

Cómo se recopilan los datos necesarios para un sistema de observabilidad

Principalmente se utilizan logs, métricas y trazas, y cada uno de estos métodos de recopilación tiene sus propias características destacadas:

  • Logs: sin duda, una de las maneras más extendidas y primigenias para conseguir datos de cómo se está comportando un software. Son la fuente más detallada de lo acontecido en la ejecución de un programa y siguen orden temporal y su principal utilidad está en la depuración de un sistema. Se generan con facilidad, pero son muy voluminosos. Pueden ser estructurados y no estructurados.
  • Las métricas son información cuantitativa sobre procesos o máquinas a lo largo del tiempo: registramos, por ejemplo, el porcentaje de uso de CPU, de disco o de memoria cada minuto. Son sencillas de recolectar, económicas de almacenar, permiten un análisis rápido y son una buena manera de medir la salud general de un sistema.
  • Las trazas son una recopilación de datos detallados sobre el camino que sigue la ejecución en el interior de un sistema como respuesta a un estímulo exterior. Es decir, ante una entrada en el sistema, ¿cómo evoluciona internamente para dar como resultado una salida concreta? Esta información muestra la latencia extremo a extremo, aunque estemos ante una arquitectura distribuida. Las trazas nos permiten comprender las rutas de ejecución, encontrar cuellos de botella y optimizarlos, además de identificar errores.

En la actualidad, a medida que las organizaciones avanzan hacia cargas de trabajo en contenedores y arquitecturas de microservicios dinámicos, algunas de las prácticas de monitorización más tradicionales resultan difíciles de escalar. Por este motivo, es fundamental pensar en términos de observabilidad.

Fernando Fuentes

Productos relacionados: