¿Qué es la observabilidad?

Monitoreo de software, pero más potente

0
50

El término «observabilidad» comenzó a ganar un impulso serio en los círculos de ingeniería de software alrededor del 2018, como una evolución natural de las prácticas de monitoreo. Al reunir los resultados brutos de las métricas, los eventos, los registros y las trazas, los desarrolladores de software podrían comenzar a obtener una imagen en tiempo real de cómo se están desempeñando sus sistemas de software y dónde podrían estar ocurriendo los problemas.

El concepto en sí, sin embargo, tiene profundas raíces en los principios de ingeniería más amplios de la teoría de control, donde la medida del estado interno de un sistema puede observarse utilizando solo sus salidas externas.

Ahora, con el amplio cambio hacia sistemas de software distribuidos a través de microservicios y contenedores, el viejo adagio de no poder gestionar lo que no se puede medir nunca ha sido más relevante.

Observabilidad vs. monitorización
Para mucha gente, la observabilidad sonará como un conveniente cambio de marca de la monitorización de aplicaciones, y cualquier escepticismo en torno a la última palabra de moda de la industria está justificado. Sin embargo, como dice mi colega David Linthicum, hay una diferencia básica: La monitorización «es algo que se hace (un verbo); la observabilidad es un atributo de un sistema (un sustantivo)», escribió.

Llevando las cosas un paso más allá, el director de ingeniería y bloguero técnico Ernest Mueller escribió en el 2018 que «la observabilidad es una propiedad de un sistema. Puede monitorear un sistema usando varios instrumentos, pero si el sistema no externaliza su estado lo suficientemente bien como para que pueda averiguar lo que realmente está sucediendo allí, entonces estás atascado».

A medida que los desarrolladores han dividido sus aplicaciones en trozos más pequeños -llamados microservicios-, los han alojado en contenedores a través de servidores distribuidos en la nube, y los han desplegado continuamente bajo el ojo omnipresente del equipo de devops, la necesidad de una verdadera observabilidad se ha vuelto cada vez más crítica.

«A medida que los sistemas se distribuyen más, los métodos para construirlos y operarlos evolucionan rápidamente, lo que hace que la visibilidad de los servicios y la infraestructura sea más importante que nunca», escribió la desarrolladora de software, Cindy Sridharan, en su libro Distributed Systems Observability.

«La observabilidad es un superconjunto de la monitorización», escribió Sridharan. «No solo proporciona una visión general de alto nivel de la salud del sistema, sino también una visión altamente granular de los modos de falla implícitos del sistema. Además, un sistema observable proporciona un amplio contexto sobre su funcionamiento interno, lo que permite descubrir problemas sistémicos más profundos».

Los tres pilares de la observabilidad
Hay tres pilares comúnmente aceptados de la observabilidad: las métricas, las trazas y los registros.

Tomados individualmente, estos pilares representan la capacidad de un desarrollador para instrumentar y supervisar sus sistemas. Una vez reunidos y presentados en un tiempo lo más cercano posible al real, se puede empezar a hacer observables esos sistemas.

Dicho esto, los tres pilares no se suman milagrosamente a la observabilidad. «No se trata de registros, métricas o rastros, sino de estar orientado a los datos durante la depuración, y utilizar la información para iterar y mejorar el producto», escribió Sridharan.

Greg Ouillon, director de tecnología para Europa, Oriente Medio y África del proveedor de monitorización New Relic, ve la observabilidad como una confluencia de las tendencias de ingeniería de software y monitorización que han dado forma a la era de la nube.

«La observabilidad aborda estos retos repensando la monitorización y adaptándose al nuevo paradigma tecnológico», señala Ouillon. «Al proporcionarle una visión totalmente conectada de todos los datos de telemetría de software en un solo lugar, la observabilidad en tiempo real le permite dominar proactivamente el rendimiento de su arquitectura digital, acelerar la innovación y la velocidad del software, y reducir el trabajo y los costos operativos».

Herramientas de observabilidad y panorama de proveedores
El panorama de los proveedores es bastante complejo en lo que respecta a la observabilidad, ya que los fabricantes de software de registro, monitorización y gestión del rendimiento de las aplicaciones (APM) reclaman ofrecer herramientas de observabilidad. «Hace un año, la observabilidad era un término útil, pero ahora se está convirtiendo en una palabra de moda», afirma el analista de Gartner, Josh Chessman.

Por ejemplo, los especialistas en monitorización de registros, como Splunk y Sumo Logic, han avanzado hacia la observabilidad de extremo a extremo desarrollando nuevas funciones y realizando adquisiciones clave para completar sus plataformas. Las adquisiciones de Splunk incluyen al especialista en supervisión del rendimiento de la red en la nube Flowmill, y al especialista en supervisión del rendimiento de usuarios y aplicaciones Plumbr en el 2020. Combinado con la compra de mil millones de dólares de la empresa de monitorización en tiempo real SignalFx en el 2019, está claro que Splunk quiere ser una ventanilla única para las herramientas de observabilidad.

Proveedores como DynatraceDatadogNew RelicSolarWindsScalyr (recientemente adquirida por el especialista en seguridad SentinelOne), y el recién llegado Honeycomb también buscan proporcionar instrumentación y observabilidad fuera de la plataforma como un servicio para los equipos de ingeniería.

En cuanto al código abierto, Grafana Labs ha creado una plataforma de monitorización y observabilidad de código abierto muy popular. Apache Skywalker es otra herramienta de observabilidad de código abierto que permite a los administradores de sistemas identificar problemas, recibir alertas clave y supervisar el estado general del sistema, con o sin una malla de servicios.

La iniciativa OpenTelemetry es otro proyecto de código abierto que ha crecido rápidamente en popularidad. El proyecto sandbox -que surgió como una fusión entre OpenCensus y OpenTracing- se encuentra en la Fundación de Computación Nativa en la Nube (CNCF) y ha reunido un amplio apoyo como estándar emergente de la industria para la observabilidad.

Para los desarrolladores que buscan construir su propia pila de observabilidad desde cero, las herramientas de código abierto como Prometheus para las métricas, Logstash para los registros y Jaegar para el rastreo pueden proporcionar los bloques de construcción necesarios para obtener los tres pilares de la observabilidad.

La siguiente fase de la observabilidad
El Santo Grial para los usuarios y los proveedores en el espacio de la observabilidad -ya sea el conjunto de herramientas propietario, de código abierto o incluso de creación propia- es automatizar la parte de la búsqueda de hechos del proceso hasta el punto de que los problemas se detecten automáticamente y puedan solucionarse antes de que afecten a los usuarios o, mejor aún, que el software solucione las fallas antes de que los desarrolladores se den cuenta del problema en su panel de control.

También hay una creciente comunidad de startups y proyectos de código abierto que buscan la próxima cosecha de desafíos de observabilidad, como la plataforma de observabilidad de código abierto Signoz.io para Kubernetes y microservicios; o Jeli, un proyecto fundado por un ex ingeniero de Netflix que se centra en dar a los equipos de desarrolladores las herramientas para mapear dónde está fallando su código contra la estructura de su organización.

Construir una cultura de observabilidad
Es importante recordar que los tres pilares por sí solos no se combinan instantáneamente para lograr la observabilidad; las personas y el proceso también deben estar alineados en torno a un conjunto de objetivos compartidos.

«El proceso de saber qué información exponer y cómo examinar las pruebas (observaciones) a mano -para deducir las respuestas probables detrás de las idiosincrasias de un sistema en producción- todavía requiere una buena comprensión del sistema y del dominio, así como un buen sentido de la intuición», escribió Cindy Sridharan.

La observabilidad no debe ser el objetivo en sí mismo, sino que debe verse como un medio para construir y operar un software más fiable para los clientes. «El valor de la observabilidad de un sistema proviene principalmente del valor empresarial y organizativo que se deriva de él», escribió Sridharan. «Ser capaz de depurar y diagnosticar rápidamente los problemas de producción no solo supone una gran experiencia para el usuario final, sino que también allana el camino hacia la operatividad humana y sostenible de un servicio, incluida la experiencia de la guardia».

Ese doble incentivo de mejores resultados para el cliente y una vida potencialmente más fácil para los ingenieros de software debería ser suficiente para impulsar a muchas organizaciones a obtener una mejor observabilidad de sus sistemas en los próximos años.

 

Scott Carey InfoWorld.com

Artículo anteriorGoogle Workspace se dirige a los trabajadores de primera línea con un nuevo nivel
Artículo siguiente«Vivimos en el mundo de la inmediatez, y las empresas o se digitalizan, o se digitalizan»