MELT: La observabilidad web
Tags: webdev, javascript, spanish
Published: 2022-07-26 16:32:00

> ✨ **Concepto clave**
> _La **Observabilidad** describe a aquello de lo que se puede entender y ocurrir dentro de un sistema, utilizando el marco tecnológico METL._

### Antecedentes
Saber el mejor rumbo para el desarrollo de una aplicación, es un tema de conversación para cualquier emprendimiento de un proyecto, inclusive, cuando se ha finalizado un MVP (Producto Mínimo Viable).

Antes, al proceso de soporte y mejoramiento del producto, era responsabilidad de una persona llamada **Web master**, ahora **Full Stack**.

De la misma forma, los roles y culturas organizaciones han adoptado o modernizados sus prácticas tanto de desarrollo como de despliegue, llamándolas **DevOps**.

> ℹ️ **Definición**
> _**DevOps** es conocido como cultura organizacional, área o rol de profesión, así como también un proceso moderno de integración y despliegue._

El nacimiento de esta vertiente de desarrollo de soluciones, surge por el hecho mismo de la automatización.

> _"Si el software nació para automatizar, entonces automaticemos nuestro proceso de desarrollo."_

### Identificación global
Si bien, DevOps es una corriente versátil que colabora en el proceso de desarrollo, no quita la existencia de varios puntos ciegos, es decir, la aparición de anomalías, defectos, fallos y errores.

> ℹ️ **Definición**
> _Existen 4 grandes eventos ante una funcionalidad no esperada:_
> _- Anomalía, la descripción de un comportamiento no esperado._
> _- Defecto, situación que se puede reproducir por su origen replicable._
> _- Fallo, incapacidad del sistema dentro de los márgenes conocidos._
> _- Error, acción humana que genera el desperfecto en el sistema._

Digamos por ejemplo:

_Contamos con un despertador que todas las mañanas a las 9 AM suena su alarma, pero desde hace unos días ya no lo hace, eso es una **anomalía**, en caso de que hubiera llegado con una manecilla rota, seria **defecto**, si necesita luz para funcionar que, por una tormenta, se nos va la luz y ya no sirve, es **fallo** y por último si utilizas tu despertador para otro fin, es un **error**._

De lo anterior, la observabilidad nos responde y pone en contexto de nuestro sistema y saber, a mediano plazo, los siguientes pasos a desarrollar para mejorar su competitividad y/o uso.

### Tendencia y contexto actual
Los sistemas modernos se transforman rápidamente día a día, dentro de contextos complejos que, progresivamente, se van distorsionando y mutando las formas de probar y de aislar sus casos de usos, características, etc.

Antes, las soluciones de software se presentaban con detalles, del modo y mecanismo para probarlas, teniendo la certeza del origen y efecto, cuando se presentaban fallas.

> _Construir "mejor" software, mediante prácticas de desarrollo moderno, no es la única solución._

Nada es perfecto, aparecen nuevos defectos, la infraestructura esta caída y/o desactualizada, surgen errores que afectan al comportamiento final con el usuario; delegando la responsabilidad a los desarrolladores con crear software que sea más fácil de probar y arreglar, dejando ambigüedades e incertidumbres para liberar características o soluciones, urgentes para encarar un mercado altamente competitivo.

### Los 4 componentes fundamentales de la observability o MELT

Actualmente, con la integración de múltiples servicios y modernizando los equipos de desarrollo mediante la especialización individual, podemos generar una observabilidad a través de 4 componentes, integrándolos individualmente o en conjunto.

> ✨ **Concepto clave**
> _Las **métricas** son medidas numéricas que pueden incluir un estado numérico, en un momento en el tiempo o agregaciones como promedios, totales, etc._

![metric](https://cdn.document360.io/da52b302-22aa-4a71-9908-ba18e68ffee7/Images/Documentation/image%28533%29.png)

_Se tienen un conjunto de valores calculados, los cuales representan diferentes métricas que comparten nombre, tiempo y valor._

_Deseamos rastrear tanto el valor total de la compra como el valor promedio de la compra._

_Con ello, podemos realizar ciertas preguntas:_
_¿Cuáles fueron mis ventas durante un período de tiempo en específico?_

Para este registro, hemos perdido algunos detalles, ya que no sabemos cuáles fueron las tres compras específicas, ni tenemos acceso a sus valores individuales.

> ✨ **Concepto clave**
> _Un **evento** se puede definir como una acción discreta que sucede en un determinado momento._

![event](https://cdn.document360.io/da52b302-22aa-4a71-9908-ba18e68ffee7/Images/Documentation/image%28532%29.png)

_Se tienen un conjunto un conjunto de eventos de compras, de los cuales se ha registrado la compra de diferentes productos con un determinado precio o valor._

_Con ello, podemos realizar preguntas como:_
_¿De cuánto fue la ganancia por ventas?_
_¿Cuál fue la preferencia de pago?_
_¿Cuál fue el promedio de selección por producto?_

> ✨ **Concepto clave**
> _Los **logs** son un repositorio de datos que, en su forma más fundamental, son sólo líneas de texto que un sistema produce._

![event](https://cdn.document360.io/da52b302-22aa-4a71-9908-ba18e68ffee7/Images/Documentation/image%28534%29.png)

El caso de uso más común para los registros es obtener un resumen detallado, paso a paso, de lo que sucedió en un momento determinado.

![log](https://cdn.document360.io/da52b302-22aa-4a71-9908-ba18e68ffee7/Images/Documentation/Screen%20Shot%202022-07-22%20at%2020.39.17.png)

_A partir de esto, sabemos que se intentó y falló una compra donde podremos replicar el imprevisto, de manera específica._

### Conclusión
Como leyó, con MELT es posible obtener un sistema observable que nos permite visualizar y analizar a lo largo de las diferentes capas de una aplicación.

Se dice que un sistema es llamado **Full Stack Observable**, cuando aplica MELT tanto al frontend como al backend, como al proceso de DevOps como el de infraestructura y, con ello, tener la certeza de aquellas anomalías, defectos, fallos y errores.

Por último, no olvide que existen herramientas que nos permiten adoptar METL sin complicaciones de instalación ([Google Analytics](https://analytics.google.com/), [Hotjar](https://www.hotjar.com/), [New Relic](https://newrelic.com/), invitando a utilizar cada una y aprender de ella como una extensión de su stack tecnológico.