Prólogo

En los últimos dos años, el término "observabilidad" ha pasado de los márgenes de la comunidad de ingeniería de sistemas a la lengua vernácula de la comunidad de ingeniería de software. A medida que este término ganaba prominencia, también sufría el destino (por desgracia, inevitable) de ser utilizado indistintamente con otro término con el que comparte cierta adyacencia: "monitorización": "monitoreo".

Lo que siguió fue tan inevitable como desafortunado: las herramientas de monitoreo y los vendedores empezaron a cooptar y utilizar el mismo lenguaje y vocabulario que empleaban quienes intentaban diferenciar los fundamentos filosóficos, técnicos y sociotécnicos de la observabilidad de los del monitoreo. Esta confusión no fue especialmente útil, por no decir otra cosa. Se corría el riesgo de confundir la "observabilidad" y el "monitoreo" en un concepto homogéneo, lo que dificultaba aún más las conversaciones significativas y matizadas sobre las diferencias.

Tratar la diferencia entre monitoreo y observabilidad como una diferencia puramente semántica es una locura. La observabilidad no es un concepto puramente técnico que pueda conseguirse comprando una "herramienta de observabilidad" (diga lo que diga cualquier vendedor) o adoptando el estándar abierto del momento. Al contrario, la observabilidad es más bien un concepto sociotécnico. Implantar con éxito la observabilidad depende tanto, si no más, de contar con el andamiaje cultural adecuado para apoyar la forma en que se desarrolla, implanta, depura y mantiene el software, como de disponer de la herramienta adecuada.

En la mayoría de los escenarios (quizás incluso en todos), los equipos necesitan aprovechar tanto el monitoreo como la observabilidad para construir y operar con éxito sus servicios. Pero cualquier implementación exitosa requiere que los profesionales entiendan primero las diferencias filosóficas entre ambas.

Lo que separa el monitoreo de la observabilidad es el espacio de estados del comportamiento del sistema y, además, cómo se desea explorar el espacio de estados y con qué nivel de detalle. Por "espacio de estados" me refiero a todos los posibles comportamientos emergentes que puede mostrar un sistema durante varias fases: desde que se diseña el sistema hasta que se desarrolla, pasando por las pruebas, la implementación, la exposición a los usuarios y la depuración a lo largo de su vida útil. Cuanto más complejo sea el sistema, más amplio y proteico será el espacio de estados.

La observabilidad permite trazar minuciosamente este espacio de estados y explorarlo en detalle con un peine de dientes finos. Esta exploración meticulosa suele ser necesaria para comprender mejor las distribuciones impredecibles, de cola larga o multimodales del comportamiento del sistema. El monitoreo, en cambio, proporciona una aproximación del estado general del sistema a grandes rasgos.

De ello se deduce que todo, desde los datos que se recopilan con este fin, hasta cómo se almacenan estos datos y cómo se pueden explorar para comprender mejor el comportamiento del sistema , varía en función de los fines del monitoreo y la observabilidad.

En las dos últimas décadas, el espíritu del monitoreo ha influido en el desarrollo de innumerables herramientas, sistemas, procesos y prácticas, muchos de los cuales se han convertido en la norma de facto del sector. Dado que estas herramientas, sistemas, procesos y prácticas se diseñaron con el propósito explícito del monitoreo, realizan un trabajo estelar con este fin. Sin embargo, no pueden -ni deben- ser rebautizadas o comercializadas a clientes desprevenidos como herramientas o procesos de "observabilidad". Hacerlo supondría un beneficio poco o nada perceptible, además de correr el riesgo de ser un enorme sumidero de tiempo, esfuerzo y dinero para el cliente.

Además, las herramientas son sólo una parte del problema. Crear o adoptar herramientas y prácticas de observabilidad que hayan tenido éxito en otras empresas no resolverá necesariamente todos los problemas a los que se enfrenta tu organización, ya que un producto acabado no cuenta la historia de cómo evolucionaron las herramientas y los procesos concomitantes, qué problemas generales pretendían resolver, qué suposiciones implícitas se incluyeron en el producto y mucho más.

Construir o comprar la herramienta de observabilidad adecuada no será la panacea si antes no se instituye un marco cultural propicio dentro de la empresa que prepare a los equipos para el éxito. Una mentalidad y una cultura arraigadas en los shibboleths del monitoreo -tableros de mando, alertas, umbrales estáticos- no ayudan a liberar todo el potencial de la observabilidad. Una herramienta de observabilidad puede tener acceso a un gran volumen de datos muy granulares, pero dar sentido con éxito a la montaña de datos -que es el árbitro último de la viabilidad y utilidad general de la herramienta, y posiblemente de la propia observabilidad- requiere una mentalidad de depuración iterativa basada en hipótesis.

El mero hecho de tener acceso a herramientas de vanguardia no cultiva automáticamente esta mentalidad en los profesionales. Tampoco lo hace elucubrar sobre nebulosas distinciones filosóficas entre monitoreo y observabilidad sin destilar estas ideas en soluciones prácticas transversales. Por ejemplo, hay capítulos de este libro que no ven con buenos ojos que los registros, las métricas y las trazas sean los "tres pilares de la observabilidad". Aunque las críticas no carecen de fundamento, lo cierto es que los registros, las métricas y las trazas han sido durante mucho tiempo los únicos ejemplos concretos de telemetría que las personas que ejecutan sistemas reales en el mundo real han tenido a su disposición para depurar sus sistemas, por lo que era inevitable que la narrativa de los "tres pilares" surgiera en torno a ellos.

Lo que mejor resuena entre los profesionales que construyen sistemas en el mundo real no son las ideas abstractas y fantasiosas, sino un plan práctico que aborde y proponga soluciones a los acuciantes problemas técnicos y culturales a los que se enfrentan. Este libro consigue salvar el abismo que existe entre los principios filosóficos de la observabilidad y su aplicación práctica, proporcionando un plan concreto (aunque sesgado) de cómo podría ser la puesta en práctica de estas ideas.

En lugar de centrarse en protocolos o normas, o incluso en representaciones de bajo nivel de diversas señales de telemetría, el libro concibe los tres pilares de la observabilidad como la tríada de eventos estructurados (o trazas sin campo de contexto, como me gusta llamarlas), la verificación iterativa de hipótesis (o depuración impulsada por hipótesis, como me gusta llamarla) y el "bucle central de análisis". Este replanteamiento holístico de los componentes básicos de la observabilidad desde los primeros principios ayuda a subrayar que las señales de telemetría por sí solas (o las herramientas creadas para aprovechar estas señales) no hacen que el comportamiento del sistema sea observable al máximo. El libro no elude arrojar luz sobre los retos a los que uno puede enfrentarse al poner en marcha una cultura de observabilidad en una organización, y proporciona una valiosa orientación sobre cómo hacerlo de una manera sostenible que debería situar a los profesionales de la observabilidad en una buena posición para el éxito a largo plazo.

Get Ingeniería de la observabilidad now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.