¿Qué es la monitorización de DevOps?

Explicación del monitoreo de DevOps

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

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

Las herramientas de monitoreo deDevOps brindan una visibilidad profunda de todo el proceso de desarrollo de software, desde la programación y la construcción hasta el despliegue y la optimización. Realizan un seguimiento del estado y el rendimiento de la infraestructura, los componentes de red, las aplicaciones, los flujos de integración continua y entrega continua (CI/CD), las interfaces de programación de aplicaciones (API) y las dependencias, con el fin de mejorar los productos de software y la forma en que se distribuyen.

Si bien el monitoreo y la observabilidad (la capacidad de comprender el estado interno de un sistema complejo en función de los resultados externos) a menudo se consideran disciplinas distintas, los esfuerzos de monitoreo a menudo respaldan la observabilidad, especialmente en entornos DevOps. Las prácticas de observabilidad, que pueden incluir el monitoreo 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 confían en plataformas de monitoreo avanzadas para lograr la observabilidad, y las plataformas de observabilidad ayudan a guiar sus estrategias de monitoreo.

En última instancia, las plataformas de monitoreo avanzadas permiten a los equipos de DevOps aprovechar las capacidades integrales de detección y corrección de problemas, para que puedan crear aplicaciones de software optimizadas y altamente escalables y ofrecer experiencias del cliente fluidas.

¿Por qué es importante el monitoreo de DevOps?

El monitoreo de DevOps permite a los equipos y empresas mover de un enfoque reactivo y de extinción de incendios a la entrega y gestión de software a un enfoque proactivo y preventivo. Proporciona visibilidad continua de extremo a extremo en arquitecturas distribuidas basadas en la nube, un activo invaluable en entornos donde las fallas a menudo surgen de interacciones sutiles entre servicios en lugar de fallas individuales obvias. 

Digamos, por ejemplo, que los pacientes en una plataforma de citas de atención médica se quejan de citas por video que no comienzan, pero el servicio de sesiones de video de la plataforma no muestra un tiempo de inactividad importante. Una solución de monitoreo de alta calidad puede usar la telemetría para descubrir que las visitas fallidas se correlacionan con períodos de tiempo en los que el servicio de sesiones de video 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 supervisión continua es un factor que facilita la colaboración. Todos los stakeholders (desarrollo, operaciones, ingeniería de confiabilidad del sitio (SRE), seguridad y equipos de productos) trabajan desde una única fuente de verdad compartida, a menudo dentro de un único panel. La telemetría compartida permite bucles de retroalimentación continuos, que ayudan a los equipos de DevOps a tomar decisiones sobre el backlog, cambios arquitectónicos y mejoras de procesos a lo largo del ciclo de vida de DevOps.

El monitoreo de DevOps también admite prácticas de desplazamiento a la izquierda. “Cambiar a la izquierda” mueve tareas de desarrollo vitales, como pruebas, resolución de problemas y seguridad, a etapas más tempranas del ciclo de vida del desarrollo de software. Los errores de código y las vulnerabilidades de seguridad se detectan (idealmente) durante la programación, en lugar de durante el despliegue.

A medida que las herramientas de monitoreo recopilan datos, los devuelven al pipeline de DevOps. Mediante la telemetría del entorno en vivo y los patrones de incidentes, el monitoreo puede revelar problemas que escapan a las primeras rondas de pruebas. Los ganchos de monitoreo envían los datos e insights de posproducción a los equipos de DevOps, quienes pueden usar 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 monitoreo de DevOps

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

Los tipos de monitoreo incluyen:

Monitoreo de infraestructura

Monitoreo de infraestructura se centra en los servidores, las redes, las bases de datos, máquinas virtuales (VMs), servicios en la nube, sistemas operativos y plataformas de almacenamiento que dan soporte a las aplicaciones. El objetivo es recopilar datos de telemetría de estos recursos para garantizar que el backend de la red informática funcione según lo previsto y que las anomalías se detecten antes de que afecten a los usuarios finales.

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

Monitoreo de red

Las herramientas de monitorización de red rastrean el flujo de datos entre routers, switches, firewall, 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 las canalizaciones CI/CD y en los flujos de 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 de DevOps implican lanzamientos rápidos de software y alta confiabilidad, por lo que los equipos deben tener las herramientas que necesitan para encontrar y solucionar problemas antes de que causen fallas en el despliegue. Las herramientas de monitoreo de red ayudan a dirección esta necesidad, automatizando tareas que de otro modo un administrador de red realizaría manualmente.

En entornos DevOps maduros, el monitoreo de 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 procesables. Los mismos datos pueden ayudar a los equipos de DevOps a optimizar las revisiones posteriores a los incidentes, lo que les permite ajustar la infraestructura, actualizar las configuraciones y mejorar las versiones futuras en función de lo que revela la telemetría de la red.

Monitoreo del rendimiento de aplicaciones

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

La supervisión del rendimiento de las aplicaciones ofrece a los equipos de DevOps una visión completa de todo, desde la experiencia del usuario a alto nivel hasta los componentes técnicos de bajo nivel, como las bases de datos y los servicios externos.

Por ejemplo, muchas herramientas de monitoreo proporcionan seguimientos detallados de transacciones e insights a nivel de código, para que los equipos puedan identificar consultas lentas a la base de datos, rutas de código ineficientes y dependencias fallidas.

Las soluciones tradicionales de monitoreo de aplicaciones se basan en pequeños componentes de software llamados “agentes”. Los agentes se despliegan en todo el entorno de la aplicación y la infraestructura de soporte para muestrear el rendimiento y la telemetría a intervalos regulares (con una frecuencia de una vez por minuto). Las soluciones más modernas emplean el monitoreo sin agente para un enfoque no intrusivo de la recopilación de datos, que se basa en el análisis del tráfico de red para recopilar datos de rendimiento de las aplicaciones.

En ambos casos, las herramientas de monitoreo 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 del usuario y monitoreo sintético

La monitorización de la experiencia del usuario—a menudo llamada monitorización digital de la experiencia (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 de backend para ilustrar dónde tienen dificultades los usuarios y por qué.

Las herramientas de monitoreo 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. Por lo general, combinan métricas de front-end de navegadores y aplicaciones con datos de observabilidad de backend, para que los equipos puedan rastrear las malas interacciones de los usuarios hasta un servicio o dependencia específicos.

El monitoreo de la experiencia del usuario comprende varios enfoques de monitoreo, incluido el monitoreo de usuarios reales (RUM) y el monitoreo sintético. RUM captura datos de rendimiento y error de sesiones de usuario reales en entornos de producción en vivo. El monitoreo sintético (también llamado monitoreo de transacciones sintéticas) utiliza pruebas automatizadas con scripts que simulan las acciones del usuario desde varias ubicaciones y entornos

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

Monitoreo de sistemas dependientes

El monitoreo 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 deautenticación y API de socios, 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 qué tan bien 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. El monitoreo 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, el monitoreo de sistemas dependientes ayuda a los equipos de DevOps a acelerar la respuesta a incidentes, mejorar la confiabilidad de la aplicación e informar futuras estrategias de respaldo y reintentar.

Monitoreo de seguridad

La supervisión de la seguridad en DevOps consiste en el seguimiento continuo de los sistemas, las aplicaciones y los flujos de trabajo para detectar vulnerabilidades de seguridad y errores de configuración. Permite a los equipos de DevOps pasar de las comprobaciones de seguridad únicas y puntuales a la vigilancia continua y automatizada de toda la pila.

Las herramientas de monitoreo de seguridad combinan el monitoreo de telemetría con controles de seguridad, como la detección de vulnerabilidades, el monitoreo de acceso y las verificaciones de cumplimiento. De esa manera, los controles de seguridad se pueden integrar 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.

Monitoreo de DevOps frente a observabilidad

Si bien las soluciones de monitoreo y las soluciones de observabilidad a menudo se apoyan y complementan entre sí, es importante comprender la distinción entre las prácticas convencionales de monitoreo y observabilidad.

En su explicación más básica, el monitoreo es reactivo y la observabilidad es proactiva. El monitoreo 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 supervisión como la observabilidad utilizan los mismos tipos de datos de telemetría: métricas, registros y trazas.

Con la monitorización, los equipos emplean 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 (para visualizar datos de telemetría).

Los equipos también pueden utilizar la telemetría para identificar y documentar las dependencias, indicando cómo interactúa 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á empleando los datos de telemetría de forma proactiva.

Las herramientas de observabilidad utilizan datos de superficie, datos de los flujos de CI/CD y datos históricos para proporcionar contexto y correlacionar eventos del sistema que a primera vista parecen no estar relacionados, creando así una visión completa y contextualizada del estado del sistema. Las características de correlación ayudan a los desarrolladores a identificar con precisión la causa principal de los problemas, tanto en tiempo real como en retrospectiva.

Con la observabilidad, los equipos de DevOps obtienen una visibilidad profunda del "qué", "dónde" y "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 detectar automáticamente nuevas fuentes de telemetría que surgen en el sistema (por ejemplo, una nueva llamada a la API de una aplicación de software). Muchas de las plataformas actuales de Observabilidad incluyen herramientas de IA (AI) y machine learning (ML) que ayudan a los equipos a obtener información más detallada a partir de las montañas de datos sin procesar que crean los entornos informátics modernos.

Profundidad

Las herramientas de monitoreo utilizan métricas y registros específicos para detectar errores del sistema, patrones de uso de recursos y modos de falla 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. Por ejemplo, el software de APM puede indicar si una aplicación está en línea, sin conexión 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, roles de dispositivos y dependencias de aplicaciones, por ejemplo), extraída de diversas fuentes de datos en toda la red.

Esta mayor visibilidad y una visión más profunda permiten a los equipos de TI adoptar un enfoque más exploratorio en la gestión de redes y aplicaciones. En lugar de observar los paneles en busca de fallas conocidas, los equipos pueden hacer preguntas abiertas a las soluciones de observabilidad de los sistemas en vivo y "hurgar y sondear" iterativamente el comportamiento para identificar nuevos modos de falla o casos extremos.

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

Flexibilidad 

La supervisión se limita a 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.

Tomar como base únicamente las herramientas de monitoreo implica depender de datos de monitoreo aislados, lo que obliga a los equipos a dedicar recursos adicionales a la correlación de datos y al análisis manual de la causa principal. Los procesos manuales ralentizan la resolución de problemas y aumentan la probabilidad de error humano, lo que aumenta la frecuencia de interrupciones del servicio y cortes en especie.

Las herramientas de observabilidad pueden mapear 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 inherentemente 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 monitoreo a menudo visualizan los datos del sistema en paneles que permiten al personal de TI ver las métricas clave en una ubicación centralizada. Sin embargo, no pueden ilustrar el origen de los errores del sistema. En cambio, las herramientas de monitoreo dejan las tareas predictivas y el análisis de causa principal a los operadores humanos.

Las herramientas de observabilidad crean mapas transitables que permiten a los equipos de DevOps ver todo el ecosistema de código base y aplicaciones con contexto completo e insights correlacionados. Esta característica permite a los equipos rastrear fácilmente los errores del sistema hasta su causa principal y optimizar los procesos de resolución de problemas.

Beneficios del monitoreo de DevOps

La implementación de prácticas integrales de monitoreo y observabilidad de DevOps ofrece a las empresas una variedad de beneficios, que incluyen:

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

Las herramientas de monitoreo de DevOps rastrean continuamente la telemetría en toda la pila tecnológica para que los errores, las ralentizaciones y las fallas se detecten tan pronto como ocurran. Por ejemplo, si un microservicio repentinamente comienza a devolver errores, las herramientas de monitoreo activarán alertas, para que el equipo pueda investigar y solucionar el problema antes de que los usuarios se vean afectados.

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

Mayor fiabilidad del sistema

El monitoreo de DevOps ayuda a garantizar que los sistemas funcionen dentro de umbrales saludables. Las herramientas de monitoreo 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 creen tiempo de inactividad. Un enfoque proactivo es vital en entornos donde los despliegues frecuentes de software son la norma.

Lanzamientos de software más seguros y rápidos

En entornos DevOps, los equipos despliegan cambios de código con frecuencia (a menudo diariamente 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 usar el monitoreo para comparar el rendimiento antes y después de un despliegue, detectar regresiones de rendimiento y admitir patrones de entrega de software progresivos (como versiones canary, donde un pequeño porcentaje de usuarios ve una nueva versión antes del despliegue completo). Como resultado, el monitoreo de DevOps puede reducir el riesgo de lanzamientos rotos y permitir que los equipos implementen reversiones más rápidas si algo sale mal.

Seguridad y cumplimiento mejorados

El monitoreo 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 de DevOps a detectar y responder a las amenazas de seguridad en tiempo real.

También proporcionan pistas 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 los estándares normativos.

Soporte dirigido para entornos de TI complejos y dinámicos

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

Las herramientas de monitoreo de DevOps proporcionan visibilidad de extremo a extremo de estos componentes, lo que permite rastrear solicitudes, correlacionar eventos y gestionar la complejidad a escala. Sin monitoreo, 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 observability

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

Explore IBM Instana Observability
Soluciones de DevOps

Utilice el software y las herramientas de DevOps para crear, desplegar y gestionar aplicaciones nativas de la nube en múltiples dispositivos y entornos.

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

Acelere la agilidad y el crecimiento empresarial: modernice continuamente sus aplicaciones en cualquier plataforma con 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 insights en tiempo real en toda su pila, puede mantener las aplicaciones nativas de la nube funcionando de forma confiable.

  1. Descubra IBM Instana
  2. Conozca las soluciones de DevOps