Desde hace un tiempo he querido empezar a compartir el conocimiento que he adquirido a lo largo de mi carrera profesional. He decidido empezar este viaje explicando un tema que considero muy importante hoy en día: la Observabilidad de nuestros sistemas informáticos. Es un largo camino por recorrer, pero me gustaría empezar desde lo más básico e ir incorporando conceptos a medida que avanzamos y consolidamos bases sólidas.
Observabilidad: Es la capacidad de comprender el estado o la condición interna de un sistema complejo basándose únicamente en el conocimiento de sus salidas externas, específicamente su telemetría. IBM
Primero que nada, expliquemos qué es la telemetría. Básicamente, la telemetría no es más que toda esa información que un sistema va dejando sobre lo que hace: métricas, logs, trazas.
Leyendo el concepto de Observabilidad, probablemente todavía queden algunas dudas de cómo funciona; entonces, veámoslo desde otro punto de vista más entendible para nosotros. Imaginemos por un momento un restaurante famoso en nuestra ciudad en el cual vamos a disfrutar de nuestro plato favorito. Desde nuestro punto de vista, nosotros quisiéramos saber si:
- El restaurante está abierto el día de hoy
- Cuánto tardan aproximadamente en preparar nuestro plato favorito
- Si el plato que ordené llegó correctamente
- Si puedo usar mi método de pago en el restaurante
Entre otras cosas. Todo eso que el cliente quiere saber es fácil de ver desde afuera — pero el dueño necesita algo más: cuando haya un problema, quiere saber exactamente por qué se originó y cómo podría solucionarlo.
Por ejemplo: un día un cliente se queja:
"Llevo 40 minutos esperando mi comida."
El dueño mira el salón y ve que hay pocos clientes. Entonces se pregunta:
¿El cocinero está tardando demasiado? ¿Se acabó algún ingrediente? ¿Hay demasiados pedidos en la cocina? ¿El camarero olvidó el pedido? ¿La caja está teniendo problemas? ¿El proveedor no entregó los ingredientes?
El restaurante funciona, pero el dueño no puede explicar qué está ocurriendo dentro. Esto es exactamente el problema que la observabilidad intenta resolver en un sistema de software.
Digamos que el dueño decide empezar a instalar un sistema que le permita monitorear el estado de su restaurante, entonces instala algunos indicadores como:
- Clientes: 120
- Pedidos: 80
- Tiempo promedio: 25 min
Esto es monitorización. Ya sabe que algo está pasando: "el tiempo promedio de preparación aumentó de 10 a 25 minutos." Mucho mejor. Pero todavía tiene una pregunta: ¿por qué?
Entonces el dueño decide implementar un sistema de observabilidad que le permita comprender el estado de su restaurante. Ahora el restaurante registra mucho más contexto. Su flujo de trabajo se registra de la siguiente manera:
Por lo tanto, el dueño puede saber la siguiente información:
Pedido recibido: 12:01:02
Cocina inició: 12:01:05
Hamburguesa lista: 12:08:31
Papas listas: 12:18:42
Pedido entregado: 12:19:01
Ahora el dueño puede descubrir: "Las hamburguesas están saliendo normalmente, pero las papas están tardando 10 minutos adicionales porque la freidora está saturada."
Eso es mucho más cercano a la observabilidad y a cómo puede ayudarnos a comprender el estado actual de nuestro sistema.
En resumen: la monitorización te dice qué está pasando; la observabilidad te ayuda a entender por qué está pasando. Ese salto —de ver números a entender causas— es el corazón de todo lo que viene en esta serie.
En la próxima publicación vamos a entrar de lleno en los 3 pilares de la observabilidad: métricas, logs y trazas. Si te ha servido esta forma de explicarlo o tienes tu propia analogía favorita para observabilidad, cuéntamela en los comentarios. 👇
Sígueme aquí en dev.to para no perderte los próximos artículos de la serie; voy publicando uno a la vez, sin relleno.
Happy Learning 🚀

Top comments (1)
Muy clara esta analogía, me gusta!.