Muchas estructuras y organismos reguladores se basan en tres pilares para ayudar a garantizar el éxito. Las prácticas de responsabilidad corporativa se centran en la sustentabilidad ambiental, social y financiera para guiar las prácticas comerciales.
Las empresas que buscan someterse a una transformación digital a menudo utilizan tres pilares (personas, procesos y tecnología) para guiarlos a través de la transición. Esta infraestructura alienta a los responsables de la toma de decisiones a centrarse en retener a los expertos en tecnología, creativos y cooperativos (personas); utilizar prácticas estructuradas y meticulosas de gestión de datos y seguridad (procesos); y confiar en herramientas y plataformas avanzadas para impulsar el progreso.
Y los tres pilares que sustentan Scrum, un conjunto de marcos y principios que permiten una gestión ágil de proyectos, son la transparencia, la inspección y la adaptación. En cada uno de estos casos, los pilares son distintos y esenciales, pero están incompletos. Cada uno tiene laxitud y prioridades propias, pero su verdadero poder radica en cómo colaboran e interactúan para respaldar mayores objetivos. Sucede lo mismo con la observabilidad.
En un contexto de TI, la observabilidad se basa en tres pilares de los datos de telemetría (métricas, registros y rastreos) para facilitar la visualización y comprensión de las vastas redes informáticas. Estos datos permiten a los desarrolladores comprender el estado interno de un sistema en función de sus resultados externos. Cuando una red es observable, el personal de TI pueden identificar la causa principal de los problemas de rendimiento al observar los datos que produce y sin necesidad de pruebas o programación adicionales.
Las soluciones de observabilidad utilizan los datos de salida sin procesar de un sistema para completar análisis de datos, proporcionando a los equipos visibilidad de la red de extremo a extremo y los insights aplicables en la práctica necesarios para lograr una resolución de problemas y una depuración eficaces.
Las arquitecturas observables ayudan a los equipos de ingeniería y a los administradores de red a gestionar la complejidad de las redes informáticas modernas. Y en estos tiempos, eso significa mantener inmensas redes informáticas altamente dinámicas que a menudo incluyen configuraciones de nube híbrida y multinube y una gama de aplicaciones nativas de la nube, microservicios y contenedores Kubernetes.
Las herramientas de observabilidad, como la solución de código abierto, OpenTelemetry, proporcionan a las empresas una visión completa y contextualizada del estado del sistema. La visibilidad full stack ayuda a los equipos a identificar patrones de datos anómalos y cuellos de botella de rendimiento antes de que afecten a los usuarios finales. Como tal, la observabilidad puede ayudar a las empresas a minimizar el tiempo de inactividad de la red y a mantener la confiabilidad del servicio en varios casos de uso.
Sin embargo, independientemente de la complejidad de la red, la observabilidad depende de los “eventos” del sistema y sus tres pilares principales. Los pilares permiten que las plataformas de observabilidad recopilen y analicen datos de aplicaciones frontend, servicios backend, pipelines de CI/CD y pipelines de datos de streaming que operan en sistemas distribuidos.
La observabilidad requiere una recopilación meticulosa de datos de cada componente de una red para determinar el “qué”, el “dónde” y el “por qué” de los eventos del sistema y para aclarar cómo los eventos podrían afectar el rendimiento de toda la arquitectura. Por lo tanto, los eventos son la base del monitoreo y la telemetría.
Los eventos son sucesos distintos en una red que ocurren en momentos específicos y, por lo general, producen datos valiosos para registros, métricas y rastreos, convirtiéndolos en parte integral de la observabilidad tanto como los tres pilares. Los eventos existen dentro de un contexto más amplio.
Cuando, por ejemplo, un cliente solicita recursos de un servidor empresarial, el cliente dirige la solicitud al endpoint de API pertinente utilizando la URL del endpoint. El servidor recibe la solicitud, verifica las credenciales de autenticación (como una clave API) y los permisos del cliente y, suponiendo que sean válidos, procesa la solicitud de acuerdo con las especificaciones de la API(por ejemplo, asegurándose de que la respuesta tenga el formato correcto ). Luego, el servidor envía una respuesta al cliente con los datos solicitados.
Los eventos desencadenan acciones distintas en momentos precisos. Por lo tanto, las herramientas de observabilidad dependen de ellos para iniciar los procesos de rastreo, análisis y correlación que ayudan a los equipos de DevOps a visualizar sus entornos de TI y a optimizar sus redes.
Las métricas proporcionan insights cuantitativos sobre el rendimiento del sistema al evaluar diversos parámetros de la red. Ayudan a los equipos a entender el “qué” de los problemas del sistema. Los tipos de métricas incluyen:
Las métricas comunes, como el uso de memoria y la latencia, se alinean intuitivamente con el estado del sistema. Sin embargo, muchas otras métricas e indicadores clave de rendimiento (KPI) pueden revelar problemas del sistema. Por ejemplo, los identificadores (handles) del sistema operativo (SO) agotados pueden ralentizar un sistema y, a menudo, requieren un reinicio para restaurar la funcionalidad.
Las métricas a menudo se agregan para proporcionar una vista resumida que utiliza paneles y otras visualizaciones (como gráficos de series temporales) para ayudar a los desarrolladores a evaluar rápidamente el estado general del sistema, analizar tendencias de datos y responder a problemas de red. También fundamentan las decisiones sobre el escalado y la asignación de recursos , lo que hace que las métricas sean esenciales para lograr una planificación de la capacidad y una gestión de la carga eficaces.
Es crucial que los equipos seleccionen cuidadosamente qué métricas rastrear y las analicen continuamente, ya que algunas métricas pueden ayudarles a prever posibles problemas antes de que ocurran.
Los equipos pueden establecer umbrales de métricas que, cuando se infringen, activan alertas para notificar al personal de TI sobre problemas actuales o inminentes. Las métricas también permiten que las herramientas de observabilidad detecten problemas, como la filtración de identificadores del sistema operativo, que se acumulan con el tiempo, comenzando mucho antes de que interrumpan la experiencia del cliente.
Sin embargo, las métricas a menudo proporcionan un contexto limitado, por lo que generalmente requieren correlación con registros y rastreos para ofrecer a los desarrolladores información completa sobre los eventos del sistema. Las métricas de alta resolución también generan enormes cantidades de datos que pueden ser difíciles de almacenar y gestionar de forma eficiente. Así pues, la observabilidad suele requerir soluciones de almacenamiento a largo plazo de alta calidad que puedan gestionar los datos de las métricas y ayuden a garantizar su continua disponibilidad para ser analizados.
Los registros son asientos inmutables y exhaustivos de eventos específicos que ocurren dentro de un sistema. Ayudan a los equipos a comprender el "por qué" de los problemas del sistema.
Los archivos de registro almacenan información detallada sobre el comportamiento del sistema y los procesos de las aplicaciones, por ejemplo:
Los registros de eventos pueden ser binarios, no estructurados (como en texto simple) o estructurados (como en formato JSON). Todos los archivos de registro son útiles en el contexto adecuado, pero los métodos de registro estructurado organizan el texto y los metadatos a medida que se generan, simplificando así su análisis.
Las características de registro dentro de las herramientas de observabilidad agregan archivos de registro de sistemas operativos, dispositivos de red, aplicaciones internas y de terceros y dispositivos del Internet de las cosas (IoT) para ayudar a los equipos de desarrollo a diagnosticar errores y comprender las fallas del sistema. Cuando se produce un error, una violación de seguridad o un problema de cumplimiento normativo, los registros proporcionan los detalles necesarios para rastrear la causa principal y comprender qué salió mal.
Los registros ofrecen valiosos insights sobre los eventos y problemas del sistema, pero por sí solos, pintan una imagen incompleta. Al igual que con las métricas, las herramientas de observabilidad deben analizar y correlacionar los datos de registro con métricas y rastreos para maximizar su valor. Y, al igual que las métricas, los registros aumentan significativamente el volumen de datos, por lo que las empresas a menudo deben invertir en sofisticadas herramientas de gestión de registros para manejar la carga de datos.
Además, el registro exhaustivo de eventos puede ocultar información importante bajo datos menos relevantes, creando “ruido” que complica la identificación de problemas para el personal de TI. Es por eso que las soluciones modernas de observabilidad se basan en flujos de trabajo de automatización impulsados por IA y aprendizaje automático (ML) para afinar las prácticas de alerta y diferenciar entre alertas críticas y ruido.
Los rastreos, que combinan algunas de las características de las métricas y los registros, asignan datos a través de los componentes de la red para mostrar el flujo de trabajo de una solicitud. Representan el recorrido de extremo a extremo de una solicitud a través de la red, capturando la ruta y la vida útil de cada componente involucrado en el procesamiento de la solicitud. En resumen, el rastreo ayuda a los ingenieros de confiabilidad del sitio (SRE) y a los equipos de ingeniería de software a comprender el “dónde” y el “cómo” de los eventos y problemas del sistema.
Los datos de rastreo pueden incluir:
El rastreo, en concreto, el rastreo distribuido, es útil en las arquitecturas de microservicios, donde las solicitudes pueden atravesar múltiples servicios dispersos geográficamente antes de llegar a su destino. Proporciona insights sobre las dependencias e interacciones entre los diferentes componentes y servicios, y puede ayudar a los equipos de TI a comprender cuánto tiempo tardan los usuarios en completar acciones específicas.
Las características de rastreo en las herramientas de observabilidad son esenciales para los análisis de latencia, que ayudan a los ingenieros a identificar componentes problemáticos y servicios de bajo rendimiento que pueden crear cuellos de botella de rendimiento para los usuarios.
Facilitan los procesos de depuración ilustrando los flujos solicitud-respuesta y las relaciones causales entre los elementos de la red. Y, durante el análisis de causa principal, los rastreos ayudan a los equipos a localizar el origen de los problemas de red en flujos de trabajo complejos para lograr una resolución de problemas más rápida y precisa.
A diferencia de las métricas y los registros, los rastreos pueden proporcionar información contextual para ayudar a enriquecer los insights. Sin embargo, el rastreo por sí solo no revela tendencias o patrones de datos. La configuración de rastreos distribuidos también requiere instrumentación en todos los despliegues de servicios, lo que puede hacer que el proceso sea especialmente complejo y lento. Y si no se gestiona adecuadamente, el rastreo, y la potencia informática que exige, pueden introducir más latencia en el entorno.
La combinación de los tres pilares permite a los equipos de desarrollo y operaciones obtener una visión holística y una comprensión granular del comportamiento complejo del sistema. Mientras que las métricas se utilizan para alertar a los equipos sobre los problemas, los rastreos muestran su ruta de ejecución y los registros proporcionan el contexto necesario para resolverlos.
En conjunto, ayudan a acelerar la identificación y resolución de problemas, ofreciendo a los equipos herramientas complementarias para abordar problemas, optimizar el rendimiento y permitir la observabilidad full stack.
Las métricas, los registros y los rastreos son ampliamente conocidos como los principales pilares de la observabilidad, pero eso no excluye la existencia de otros componentes básicos. Algunos argumentarían que el contexto, la correlación y las alertas también son pilares de la observabilidad.
Después de todo, el contexto enriquece las métricas, los registros y los rastreos al proporcionar información adicional sobre el entorno de red (topología, roles de dispositivos y dependencias de aplicaciones, por ejemplo). Sin contexto, los datos de observabilidad carecerían de significado aplicable en la práctica.
La correlación une métricas, registros, rastreos e información contextual para presentar una visión cohesiva de los eventos en diferentes capas de la pila de red. Y sin alertas, las herramientas de observabilidad no podrían enviar notificaciones de instrucción cuando surgen problemas.
Sin embargo, la creación de perfiles se está convirtiendo en otra característica clave de la observabilidad.
La creación de perfiles, también denominada creación continua de perfiles, es el proceso de ejecutar una aplicación y recopilar continuamente datos detallados sobre el estado de la ejecución del código en momentos específicos. Por ejemplo, los perfiles pueden revelar si los subprocesos de Java están en estado de EJECUCIÓN o de ESPERA. O bien, si una aplicación tiene problemas de pérdida de memoria, los perfiles pueden ayudar a aclarar qué parte del código está consumiendo demasiados recursos.
Por lo tanto, los perfiles sirven como radiografías del funcionamiento interno de componentes individuales del sistema.
La creación de perfiles es útil para detectar problemas de bajo nivel, como los que afectan a funciones individuales o bloques de código. Ayuda a los equipos de TI a identificar rutas de código ocupadas, localizar y discontinuar rutas no utilizadas y priorizar rutas críticas para futuros eventos e interacciones.
Si bien los perfiles no son uno de los tres pilares, las capacidades de generación de perfiles han evolucionado significativamente. Proyectos como el Berkeley Packet Filter extendido (eBPF) para el kernel de Linux han simplificado el desarrollo del generador de perfiles, facilitando así los procesos de generación de perfiles para los equipos de desarrollo.
Los equipos de desarrollo pueden emplear perfiles de rastreo, muestreo e instrumentación para obtener vistas más profundas y granulares del código de las aplicaciones. Y, cuando se utiliza junto con otros pilares de observabilidad, la creación de perfiles puede proporcionar insights en tiempo real sobre el rendimiento de las aplicaciones, acelerar el ciclo de vida del desarrollo de software y ayudar a las empresas a optimizar las estrategias de DevOps.
Identifique y arregle rápidamente el origen del problema. Los datos en tiempo real y de gran fidelidad ofrecen una visibilidad completa de los entornos dinámicos de aplicaciones e infraestructuras.
Aumente la automatización y las operaciones de TI con IA generativa, alineando todos los aspectos de su infraestructura de TI con las prioridades empresariales.
IBM SevOne Network Performance Management es un software de monitoreo y análisis que proporciona visibilidad e información en tiempo real sobre redes complejas.