Visibilidad en la nube: vaya más allá de las métricas y los registros para ver qué está pasando

En un complejo mundo nativo de la nube, la vigilancia es más importante que nunca. Las aplicaciones nativas de la nube son cada vez más comunes en la naturaleza y son compatibles con una variedad de herramientas de código abierto. Están alojados en múltiples ubicaciones en la nube y en centros de datos locales. El monitoreo ha cambiado de algunas herramientas proporcionadas por el fabricante a cadenas de herramientas que contienen las mejores herramientas. Ni una sola herramienta de monitoreo puede hacerlo todo. Todas estas variables y factores han hecho que el monitoreo de las aplicaciones nativas de la nube sea completamente diferente, pero más poderoso que nunca. Veamos cómo podemos ir más allá de las métricas y protocolos de vigilancia tradicionales y encontrar formas de lograr una mayor observabilidad y visibilidad en la nube.

Fundamentos de visibilidad en la nube: métricas y registros

Desde el comienzo de la informática, las métricas y los protocolos han sido una parte integral de la gestión de aplicaciones. No se irán tan rápido. Si confía en una herramienta de código abierto como Nagios o una herramienta de fabricante como Splunk, sabrá el valor de las métricas y los registros. Son fundamentales para evaluar la salud de un sistema día a día y son invaluables para la resolución de problemas.

Métrica

Las métricas son números que miden el rendimiento de un sistema. Las métricas existen en todos los niveles de la pila de aplicaciones: infraestructura, red y rendimiento de la aplicación. Las métricas más comunes miden la disponibilidad del servidor, el tiempo que lleva completar las solicitudes de red y la latencia de la aplicación. Se muestran mejor en diagramas visuales claros y paneles y son un buen punto de partida para cualquier propósito de monitoreo.

Visibilidad en la nube

Wikimedia

Registros

Un registro es un registro de un evento que ha ocurrido en un sistema. A diferencia de una métrica, que es un número, un registro contiene varias dimensiones, p. B. una marca de tiempo o un mensaje de error de texto. Mientras que las métricas le dicen lo que sucede en un sistema, los registros le permiten profundizar y descubrir dónde y cuándo.

Visibilidad en la nube

Capturas de pantalla de Flickr / Linux

El análisis de protocolo moderno ha cambiado drásticamente para mantener el ritmo de la creciente complejidad de las aplicaciones. El volumen de los registros generados se ha disparado. Más registros no significan automáticamente más información. De hecho, la parálisis logarítmica es un desafortunado efecto secundario de la modernización de la aplicación. Por esta razón, las herramientas de registro modernas se centran en generar la señal del ruido. Como la mayoría de los datos de registro son banales y repetitivos, las mejores herramientas se separan del paquete al poder identificar la aguja en el pajar.

La necesidad de profundizar el monitoreo de la visibilidad en la nube

Si bien las métricas comienzan con "qué" y los registros profundizan en "cuándo" y "dónde", el santo grial para la visibilidad de la nube es descubrir "por qué", la principal causa de un problema. Hay puntos, esquinas y ángulos que las métricas y protocolos simples de vainilla no pueden lograr. Veamos algunas formas en que puede ir más allá de las métricas y protocolos al monitorear aplicaciones nativas en la nube.

Nube híbrida y multicloud

En lugar de centros de datos individuales, las empresas actualmente ejecutan aplicaciones en un centro de datos y múltiples plataformas en la nube. Estas configuraciones de nube híbrida (centro de datos + nube) y multicloud (más de una plataforma de nube) agregan complejidad y dificultan el monitoreo de aplicaciones, redes e infraestructura.

Aumento de la red de servicio

Al desarrollar aplicaciones nativas de la nube, Kubernetes y su ecosistema de herramientas deben tenerse en cuenta. Esto incluye administrar la red como una malla de servicios. En lugar de una simple comunicación punto a punto, una malla de servicio requiere una comunicación de muchos a muchos. Esto separa las preocupaciones dentro de la red y le da a los servicios más autonomía. Sin embargo, los patrones de comunicación son complejos y difíciles de monitorear.

Soluciones para mejorar la supervisión y visibilidad en la nube

La complejidad de la infraestructura, la red y la pila de aplicaciones ha llevado a nuevos métodos y enfoques para el monitoreo.

Métricas de series de tiempo con Prometeo

Las herramientas de monitoreo convencionales ofrecen métricas en intervalos por minuto o por segundo. Estas métricas no proporcionan los detalles y la flexibilidad necesarios para monitorear las aplicaciones nativas de la nube. Prometheus es una herramienta de monitoreo de la serie de temporizadores de código abierto que rastrea las métricas en intervalos de milisegundos. Las métricas se registran como un flujo continuo de datos.

Prometheus obtiene métricas de los puntos finales de servicio en lugar de depender de un agente para enviar métricas. Una vez que se recopilan los datos, Prometheus permite a los usuarios agregar etiquetas para que cada métrica se pueda ver en más de una dimensión. Estas ventajas han hecho de Prometheus la herramienta de vigilancia más utilizada para Kubernetes.

Cambiar a malla de servicio

Servicio de malla

A diferencia de las aplicaciones simples cliente-servidor, la comunicación de red para aplicaciones de microservicios distribuidos es compleja. En lugar de la comunicación uno a uno, los requisitos de red ahora son muchos a muchos. Esto trae consigo una gran complejidad para la operación y monitoreo de la red. La solución es utilizar una solución de malla de servicio moderna como Istio, que actúa como una capa de abstracción sobre la capa de solicitud TCP / IP y le brinda un control más preciso sobre los requisitos.

Una solución de malla de servicio incluye lógica incorporada para intentos de reintento, tiempos de espera, equilibrio de carga y detección de servicio. Esto no solo mejora la gestión de requisitos, sino que también brinda una visibilidad más profunda de cada requisito. Las herramientas de malla de servicio también incluyen una arquitectura de complemento abierta para enviar métricas de red y seguimiento a herramientas externas para un monitoreo confiable. Esta es una señal de un ecosistema maduro en el que las responsabilidades se dividen: una herramienta para administrar los requisitos y otra para monitorear los requisitos.

Agregación y reenvío de datos de monitoreo

Con la multitud de ubicaciones y componentes de la nube que se deben monitorear, la transmisión de datos se supervisa como una supercarretera de información, y este tráfico debe administrarse adecuadamente. Esto ha llevado a un aumento en las herramientas de agregación y enrutamiento como Fluentd y Logstash. Estas herramientas pueden recopilar datos de registro de múltiples fuentes y reenviarlos a múltiples destinos cuando sea necesario. Los objetivos pueden ser una herramienta exclusiva de registro o monitoreo o una herramienta interna patentada dentro de una empresa.

Dichas herramientas de middleware aumentan la complejidad de la arquitectura general, pero son necesarias para supervisar una pila de aplicaciones equilibrada. La idea, por supuesto, no es exagerar con las herramientas, sino usarlas con razón. Es un compromiso entre complejidad y control. A pesar de la creciente complejidad, las empresas necesitan control y transparencia sobre las aplicaciones nativas de la nube que se ejecutan en producción.

Seguimiento distribuido de los requisitos de la red.

Hasta ahora, las métricas y los registros han sido el requisito básico para monitorear las operaciones. Sin embargo, con la computación nativa en la nube, la red se ha vuelto más importante en forma de una malla de servicios. Esto requiere una visibilidad más profunda que las métricas y los registros pueden ofrecer. Introduzca la traza distribuida. Una traza indica cuánto tiempo lleva completar una solicitud de red. Una sola pista consta de varios períodos de tiempo. A medida que realiza un seguimiento de cada tramo, puede realizar un seguimiento del viaje exacto de cada solicitud a medida que viaja a través de la red. Puede ver qué servicios se están tocando, dónde se produce la latencia y dónde se activan los tiempos de espera. Esto es como usar una lupa para examinar cada solicitud con más detalle.

Jaeger es la herramienta líder de código abierto para el rastreo distribuido en el ecosistema de Kubernetes. Se basa en el modelo desarrollado originalmente con Zipkin. Sigue un estándar abierto llamado OpenTelemetry, un proyecto de caja de arena CNCF que se implementará en toda la industria.

Visibilidad en la nube: sí, necesita más que métricas y protocolos

Cuando se aventura en el mundo de la informática nativa de la nube, debe explorar soluciones de vigilancia que van más allá de las métricas y los protocolos. Las aplicaciones distribuidas plantean nuevos desafíos para el monitoreo. Afortunadamente, sin embargo, hay varias opciones disponibles para monitorear estas aplicaciones mientras se disfruta del control y la visibilidad necesarios. Si bien todas las soluciones como Prometheus, Istio, Fluentd y Jaeger son las mejores en su trabajo, funcionan mejor cuando se usan juntas. Permiten una visibilidad en la nube que se puede implementar en tiempo real, con alta resolución y lista para la producción.

Imagen seleccionada: Shutterstock

Visibilidad posterior a la nube: vaya más allá de las métricas y los registros para ver qué aparece primero en TechGenix.

Comentarios