¿Qué es la monitorización de DevOps?

Explicación de la monitorización de DevOps

La monitorización de DevOps es un subconjunto de la monitorización de TI que se centra en la recopilación y el análisis continuos y en tiempo real de datos en todos los pipelines de DevOps y entornos de tiempo de ejecución.

La monitorización de DevOps utiliza la telemetría (métricas, registros y rastreos) y los datos de eventos para recopilar feedback que ayude a impulsar la observabilidad full stack, la detección proactiva de problemas y una entrega de software más rápida en los pipelines de DevOps

Las herramientas de monitorización de DevOps proporcionan una visibilidad profunda de todo el proceso de desarrollo de software, desde la codificación y la construcción hasta la implementación y la optimización. Rastrean la salud y el rendimiento de la infraestructura, los componentes de red, las aplicaciones, los pipelines de integración continua/entrega continua (CI/CD), las interfaces de programación de aplicaciones (API) y las dependencias para mejorar los productos de software y la forma en que se entregan.

Aunque la monitorización y la observabilidad (la capacidad de comprender el estado interno de un sistema complejo en función de los resultados externos) suelen considerarse disciplinas distintas, los esfuerzos de monitorización suelen respaldar la observabilidad, especialmente en entornos DevOps. Las prácticas de observabilidad, que pueden incluir la monitorización de DevOps, ayudan a explicar por qué los sistemas se comportan de cierta manera, especialmente en microservicios y arquitecturas nativas de la nube. A menudo, las empresas dependen de plataformas avanzadas de monitorización para lograr la observabilidad, y estas ayudan a guiar sus estrategias de monitorización.

En definitiva, las plataformas avanzadas de monitorización permiten a los equipos DevOps aprovecharse de capacidades de detección y corrección de problemas, para que puedan construir aplicaciones de software optimizadas y altamente escalables y ofrecer una experiencia del cliente sin problemas.

¿Por qué es importante la monitorización de DevOps?

La monitorización de DevOps permite a los equipos y empresas pasar de un enfoque reactivo y de extinción de incendios de la entrega y gestión de software a un enfoque proactivo y preventivo. Proporciona visibilidad continua, de extremo a extremo, a través de arquitecturas distribuidas basadas en la nube, un activo invaluable en entornos donde los fallos suelen surgir de interacciones sutiles entre servicios en lugar de fallos individuales evidentes. 

Supongamos, por ejemplo, que los pacientes en una plataforma de citas sanitarias se quejan de citas por vídeo que no empiezan, pero el servicio de videollamadas de la plataforma no muestra tiempo de inactividad. Una solución de monitorización de alta calidad puede utilizar la telemetría para descubrir que las visitas fallidas se correlacionan con periodos de tiempo en los que el servicio de sesiones de vídeo de terceros de la plataforma experimentó aumentos pequeños pero notables en la latencia y problemas de limitación de velocidad, lo que retrasó la creación de habitaciones para los pacientes.

Desde la perspectiva de DevOps, la monitorización continua facilita la colaboración. Todas las partes interesadas (desarrollo, operaciones, ingeniería de fiabilidad del sitio (SRE), equipos de seguridad y producto) trabajan desde una única fuente fiable compartida, a menudo dentro de un único panel. La telemetría compartida permite bucles de feedback continuos, que ayudan a los equipos DevOps a tomar decisiones de backlog, cambios arquitectónicos y mejoras de procesos a lo largo del ciclo de vida de DevOps.

La monitorización de DevOps también admite prácticas shift-left. El "desplazamiento a la izquierda" mueve tareas de desarrollo vitales, como pruebas, resolución de problemas y seguridad, a etapas anteriores del ciclo de vida del desarrollo de software. Los defectos del código y las vulnerabilidades de seguridad se descubren (idealmente) durante la codificación en lugar de la implementación.

A medida que las herramientas de monitorización recopilan datos, los devuelven al pipeline de DevOps. Mediante la telemetría del entorno real y los patrones de incidentes, la monitorización puede revelar problemas que escapan a las primeras rondas de pruebas. Los ganchos de monitorización envían los datos y perspectivas de posproducción a los equipos de DevOps, que pueden utilizar la información para diseñar nuevas pruebas de preproducción que detecten defectos similares en el desarrollo en futuras iteraciones de software.

Tipos de monitorización de DevOps

La monitorización DevOps abarca varios tipos distintos, pero relacionados, de monitorización de TI que, en conjunto, proporcionan una visibilidad completa de los sistemas, aplicaciones y comportamiento de los usuarios. Cada tipo se centra en instrumentar capas o componentes específicos del ciclo de vida de entrega del software, desde el estado de la infraestructura hasta las interacciones con el usuario final.

Los tipos de monitorización incluyen:

Supervisión de la infraestructura

La monitorización de infraestructura se centra en los servidores, las redes, las bases de datos, las máquinas virtuales (VM), los servicios en la nube, los sistemas operativos y las plataformas de almacenamiento en disco que dan soporte a las aplicaciones. El objetivo es absorber telemetría de estos recursos para ayudar a garantizar que el backend de la red informática funcione como se espera y que se detecten anomalías antes de que afecten a los usuarios finales.

Las herramientas de monitorización de infraestructura recopilan métricas como el uso de la CPU, el consumo de memoria, el rendimiento de la red, la latencia y el tiempo de actividad. A continuación, envían la información a una plataforma de monitorización centralizada que almacena, analiza y visualiza los datos para los equipos de DevOps.

Monitorización de red

Las herramientas de monitorización de red rastrean el flujo de datos entre routers, switches, firewalls, balanceadores de carga, máquinas virtuales, contenedores y cargas de trabajo en la nube, vigilando problemas de conectividad y malas configuraciones que puedan ralentizar la transmisión de datos. También introducen información en los pipelines CI/CD y flujos de trabajo de la gestión de incidentes, para que los equipos DevOps puedan configurar alertas y rollbacks automáticos basados en datos en tiempo real.

Las prácticas DevOps implican lanzamientos rápidos de software y una alta fiabilidad, por lo que los equipos deben disponer de las herramientas necesarias para encontrar y realizar correcciones antes de que provoquen fallos en la implementación. Las herramientas de monitorización de red ayudan a cubrir esta necesidad, automatizando tareas que un administrador de red realizaría manualmente.

En entornos DevOps maduros, la monitorización de la red se integra con herramientas de chat, herramientas de gestión de registros, sistemas de tickets y rotaciones de personal de guardia para que las alertas se conviertan en incidentes que se pueden ejecutar. Los mismos datos pueden ayudar a los equipos de DevOps a agilizar las reseñas posteriores a los incidentes, lo que les permite afinar la infraestructura, actualizar las configuraciones y mejorar las versiones futuras en función de lo que revele la telemetría de red.

Monitorización del rendimiento de las aplicaciones

Las herramientas de monitorización del rendimiento de las aplicaciones supervisan toda la pila de la aplicación, incluyendo el marco de la aplicación (Java o .NET, por ejemplo), el sistema operativo, las bases de datos, las API, el middleware y los servidores de aplicaciones web. Miden la rapidez y fiabilidad con la que las aplicaciones responden a las acciones de los usuarios y si las aplicaciones están disponibles cuando los usuarios las necesitan.

La monitorización del rendimiento de las aplicaciones ofrece a los equipos de DevOps visibilidad de todo, desde las experiencias de usuario de alto nivel hasta los componentes técnicos de bajo nivel, como bases de datos y servicios externos.

Por ejemplo, muchas herramientas de monitorización proporcionan rastreos detallados de transacciones e información a nivel de código, para que los equipos puedan identificar consultas lentas a bases de datos, rutas de código ineficientes y dependencias fallidas.

Las soluciones tradicionales de monitorización de aplicaciones se basan en pequeños componentes de software llamados "agentes". Los agentes se implementan en todo el entorno de la aplicación y en la infraestructura de soporte para tomar muestras del rendimiento y la telemetría a intervalos regulares (con una frecuencia de hasta una vez por minuto). Las soluciones más modernas utilizan la monitorización sin agentes para un enfoque no intrusivo de la recopilación de datos, basándose en el análisis del tráfico de red para recopilar datos de rendimiento de la aplicación.

En ambos casos, las herramientas de monitorización del rendimiento de las aplicaciones pueden facilitar a los equipos de DevOps el cumplimiento de los acuerdos de nivel de servicio (SLA), automatizar la gestión de problemas y mejorar la calidad del código con el tiempo.

Experiencia de usuario y supervisión sintética

La supervisión de la experiencia del usuario, a menudo llamada supervisión de la experiencia digital (DEM), consiste en entender cómo las personas reales experimentan un sitio o aplicación en términos de velocidad, fiabilidad y usabilidad. Reúne datos de navegadores web, aplicaciones móviles, API y sistemas backend para ilustrar dónde tienen dificultades los usuarios y por qué.

Las herramientas de monitorización de la experiencia del usuario rastrean métricas como los tiempos de respuesta de la página, los retrasos en la interacción y las tasas de error, y evalúan si los recorridos clave de los usuarios (registro, pago y búsqueda, por ejemplo) tienen éxito. Normalmente combinan métricas front-end de navegadores y aplicaciones con datos de observabilidad backend, para que los equipos puedan rastrear interacciones de usuario malas hasta un servicio o dependencia específica.

La experiencia del usuario comprende diversos enfoques de supervisión, incluyendo la supervisión de usuarios reales (RUM) y la supervisión sintética. RUM captura datos de rendimiento y errores de sesiones de usuario reales en entornos de producción en vivo. La supervisión sintética (también llamada supervisión sintética de transacciones) utiliza pruebas automatizadas y con guiones que simulan las acciones de los usuarios desde varios lugares y entornos

Independientemente del enfoque, las herramientas de monitorización de usuarios permiten a los equipos de DevOps ver las tendencias de rendimiento sistémicas y en todo el ecosistema de aplicaciones.

Monitorización de sistemas dependientes

La supervisión de sistemas dependientes mide la disponibilidad, el rendimiento y el comportamiento de los sistemas y servicios externos de los que dependen las aplicaciones para funcionar (pasarelas de pago, proveedores de autenticación y API de partners, por ejemplo).

Aunque los sistemas dependientes (o dependencias) existen fuera del código base de una aplicación, pueden tener un profundo impacto en la funcionalidad de la aplicación. Si, por ejemplo, falla la API que conecta la aplicación de reservas de una aerolínea con su plataforma de pago, los clientes no pueden reservar sus vuelos, sin importar lo bien que funcione la aplicación en sí.

Los entornos informáticos modernos están altamente distribuidos, por lo que un número significativo de incidentes se debe a fallos y cuellos de botella en servicios ascendentes o descendentes. La monitorización de sistemas dependientes ayuda a los equipos de DevOps a distinguir rápidamente una situación de "nuestro código está roto" de una situación de "dependencia degradada".  

Como tal, la monitorización de sistemas dependientes ayuda a los equipos de DevOps a acelerar la respuesta a incidentes, mejorar la fiabilidad de la aplicación e informar futuras estrategias de alternativa y reintento.

Monitorización de seguridad

La monitorización de seguridad en DevOps es el seguimiento continuo de sistemas, aplicaciones y pipelines en busca de vulnerabilidades y configuraciones erróneas de seguridad. Permite a los equipos DevOps pasar de comprobaciones de seguridad puntuales y de un punto en el tiempo a una vigilancia automatizada continua de toda la pila.

Las herramientas de monitorización de seguridad combinan la monitorización de telemetría con controles de seguridad como la detección de vulnerabilidades, la monitorización de acceso y las comprobaciones de cumplimiento. De este modo, los controles de seguridad pueden integrarse en los entornos de CI/CD y tiempo de ejecución para ayudar a los equipos a detectar y remediar las amenazas de seguridad a lo largo del ciclo de vida del software.

Monitorización de DevOps vs. observabilidad

Si bien las soluciones de monitorización y las soluciones de observabilidad suelen apoyarse y complementarse, es importante entender la diferencia entre las prácticas convencionales de monitorización y observabilidad.

En su forma más básica, la monitorización es reactiva y la observabilidad es proactiva. La monitorización y la observabilidad también difieren significativamente en términos de uso de datos, alcance, profundidad, flexibilidad y capacidades de visualización.

Uso de datos

Tanto la monitorización como la observabilidad utilizan los mismos tipos de datos de telemetría: métricas, registros y rastreos.

Con la monitorización, los equipos utilizan datos de telemetría para revelar lo que ocurre en un sistema. Por ejemplo, pueden establecer puntos de referencia o definir indicadores clave de rendimiento (KPI) (que indican el progreso hacia los objetivos de rendimiento del software); establecer umbrales (para activar notificaciones y acciones en respuesta a eventos específicos del sistema); y configurar paneles de control (para visualizar los datos de telemetría).

Los equipos también pueden utilizar la telemetría para identificar y documentar las dependencias, indicando cómo funciona cada componente de la aplicación con otros componentes, aplicaciones y recursos de TI.

Pero la monitorización no puede explicar por qué ocurren eventos problemáticos.

Las plataformas de observabilidad llevan la monitorización un paso más allá utilizando los datos de telemetría de forma proactiva.

Las herramientas de observabilidad utilizan datos a nivel de superficie, datos de pipelines de CI/CD y datos históricos para proporcionar contexto y correlacionar eventos del sistema aparentemente no relacionados, creando una visión completa y contextualizada del estado del sistema. Las características de correlación ayudan a los desarrolladores a identificar la causa raíz de los problemas con precisión, tanto en tiempo real como retrospectivamente.

Con la observabilidad, los equipos de DevOps obtienen una visibilidad profunda del "qué", el "dónde" y el "por qué" de los eventos del sistema, y cómo el evento podría afectar el rendimiento de todo el entorno.

Además, muchas soluciones de observabilidad pueden descubrir automáticamente nuevas fuentes de telemetría que surjan en el sistema (una nueva llamada a la API de una aplicación informática, por ejemplo). Muchas de las plataformas de observabilidad actuales incluyen herramientas de inteligencia artificial (IA) y machine learning (ML) que ayudan a los equipos a obtener más perspectivas granulares de las montañas de datos sin procesar que crean los entornos informáticos modernos.

Profundidad

Las herramientas de monitorización utilizan métricas y registros específicos para detectar errores del sistema, patrones de uso de recursos y modos de fallo específicos. Ayudan a los equipos a identificar "lo conocido", lo que significa que los equipos de TI pueden encontrar solo los problemas que ya saben que son posibles. El software de monitorización del rendimiento de las aplicaciones, por ejemplo, puede indicar si una aplicación está en línea, fuera de línea o tiene problemas de latencia. 

Las herramientas de observabilidad ayudan a revelar "incógnitas desconocidas" al enriquecer los datos de telemetría con información adicional sobre el entorno de red (topología, configuraciones, funciones de los dispositivos y dependencias de las aplicaciones, por ejemplo), extraída de diversas fuentes de datos de la red.

Esta mayor visibilidad y perspectivas más profundas permiten a los equipos de TI adoptar un enfoque más exploratorio para la gestión de aplicaciones y redes. En lugar de observar los paneles de control en busca de fallos conocidos, los equipos pueden hacer preguntas abiertas a las soluciones de observabilidad de los sistemas activos y "hurgar y sondear" el comportamiento de forma iterativa para identificar nuevos modos de fallo o casos edge.

Los ingenieros podrían, por ejemplo, pedir a una herramienta de observabilidad que "muestre rastros en los que la latencia supere los cinco segundos para los usuarios de aplicaciones en Sídney, Australia, cuyo tráfico pasó por el servicio X después de la implementación Y" para descubrir problemas de rendimiento específicos de la cohorte que los promedios agregados pueden ocultar.    

Flexibilidad 

La supervisión está limitada por los conjuntos de datos predefinidos que proporcionan los equipos de TI. Solo puede identificar los problemas que los equipos de TI programan para reconocer el software de monitorización, por lo que las herramientas de monitorización a menudo son insuficientes para gestionar entornos dinámicos.

Confiar únicamente en las herramientas de monitorización significa confiar en los datos de monitorización en silos, lo que exige que los equipos dediquen más recursos a la correlación de datos y al análisis manual de la causa raíz. Los procesos manuales ralentizan la resolución de problemas y aumentan la probabilidad de errores humanos, lo que aumenta la frecuencia de interrupciones y cortes del servicio.

Las herramientas de observabilidad pueden mapear las interacciones de datos de fuentes de datos dinámicas y diversas en entornos de nube (como entornos híbridos y multinube), infraestructura on-premises y aplicaciones de terceros. Son intrínsecamente adaptables, lo que los hace muy adecuados para las demandas de resolución de problemas de las infraestructuras de TI modernas.

Y con sus capacidades de automatización y AIOps, las plataformas de observabilidad pueden escalar junto con los ecosistemas, para que los equipos puedan gestionar eficazmente sus infraestructuras a medida que se expanden.

Visualización

Las herramientas de monitorización a menudo visualizan los datos del sistema en paneles de control que permiten al personal de TI ver las métricas clave en una ubicación centralizada. Sin embargo, no pueden ilustrar los orígenes de los errores del sistema. En cambio, las herramientas de monitorización dejan las tareas predictivas y el análisis de causa raíz a los operadores humanos.

Las herramientas de observabilidad crean mapas navegables que permiten a los equipos DevOps ver toda la base de código y el ecosistema de aplicaciones con todo el contexto y los conocimientos correlacionados. Esta función permite a los equipos rastrear fácilmente los errores del sistema hasta sus causas de origen y agilizar los procesos de resolución de problemas.

Beneficios de la monitorización de DevOps

Implementar prácticas integrales de monitorización y observabilidad DevOps ofrece a las empresas una serie de beneficios, entre ellos:

Detección y resolución de problemas más rápidas

Las herramientas de monitorización de DevOps rastrean continuamente la telemetría en toda la pila tecnológica para que los errores, las ralentizaciones y los fallos se detecten tan pronto como se produzcan. Por ejemplo, si un microservicio empieza a devolver errores de repente, las herramientas de monitorización activarán alertas, de modo que el equipo pueda investigar y realizar correcciones antes de que los usuarios se vean afectados.

Estas capacidades ayudan a los equipos de DevOps a reducir el tiempo medio de detección (MTTD) y el tiempo medio de reparación (MTTR) y facilitan experiencias de usuario más fluidas.

Mejora de la fiabilidad del sistema

La monitorización de DevOps ayuda a garantizar que los sistemas funcionen dentro de umbrales saludables. Las herramientas de monitorización agilizan el proceso de configuración de alertas y flujos de trabajo de automatización, para que los equipos puedan evitar que pequeños problemas generen tiempo de inactividad. Un enfoque proactivo es vital en entornos donde las implementaciones frecuentes de software son la norma.

Lanzamientos de software más seguros y rápidos

En los entornos DevOps, los equipos implementan cambios de código con frecuencia (a menudo a diario o varias veces al día). La monitorización es esencial para validar que cada versión se comporta como se espera en producción.

Los equipos pueden utilizar la monitorización para comparar el rendimiento antes y después de una implementación, detectar regresiones de rendimiento y admitir patrones de entrega de software progresivos (como las versiones canary, en las que un pequeño porcentaje de usuarios ven una nueva versión antes de la implementación completa). Como resultado, la monitorización de DevOps puede reducir el riesgo de que las versiones no funcionen y permitir a los equipos implementar reversiones más rápidas si algo sale mal.

Seguridad y cumplimiento mejorados

La monitorización de DevOps incluye prácticas centradas en la seguridad, como el seguimiento de los intentos de autenticación, los registros de acceso, el tráfico de red y los patrones de comportamiento inusuales. Estas características ayudan a los equipos DevOps a detectar y responder a amenazas de seguridad en tiempo real.

También proporcionan registros de auditoría y pruebas de que los sistemas funcionan de forma segura y dentro de las políticas, lo que ayuda a las empresas a mantener el cumplimiento de las normativas reguladoras.

Soporte específico para entornos de TI complejos y dinámicos

Muchas de las aplicaciones actuales se ejecutan en contenedores Kubernetes, microservicios, computación sin servidor y arquitecturas multinube, que son difíciles de depurar con las herramientas tradicionales.

Las herramientas de monitorización de DevOps proporcionan visibilidad de extremo a extremo entre estos componentes, lo que permite rastrear solicitudes, correlacionar eventos y gestionar la complejidad a escala. Sin monitorización, sería casi imposible mantener la estabilidad y el rendimiento del sistema en dichos entornos.

Autor

Chrystal R. China

Staff Writer, Automation & ITOps

IBM Think

Soluciones relacionadas
IBM Instana Observability

Aproveche la potencia de la IA y la automatización para resolver problemas de manera proactiva en toda la pila de aplicaciones.

Explore IBM Instana Observability
Soluciones DevOps

Utilice el software y las herramientas de DevOps para construir, implementar y gestionar aplicaciones nativas de la nube en varios dispositivos y entornos.

Explore las soluciones DevOps
Servicios de consultoría en la nube

Acelere la agilidad y el crecimiento empresarial: modernice continuamente sus aplicaciones en cualquier plataforma utilizando nuestros servicios de consultoría en la nube.

Explore los servicios de consultoría en la nube
Dé el siguiente paso

Desde la detección proactiva de problemas con IBM® Instana hasta los conocimientos en tiempo real en toda su pila, puede mantener las aplicaciones nativas de la nube funcionando de forma fiable.

  1. Descubra IBM Instana
  2. Explore las soluciones DevOps