Kubernetes en la Nube: Una Guía para la Observabilidad

Según el dicho “Si no lo mides, no puedes gestionarlo” de Deming, la observabilidad y el monitoreo son nuestra forma de medir nuestros servicios.

Kubernetes es bastante revolucionario en la forma en que maneja implementaciones y escalas. Pero la manera en que los contenedores se crean y destruyen continuamente a veces puede presentar desafíos con el monitoreo. Aquí es donde entra en juego la observabilidad, ofreciendo información crítica sobre cómo está funcionando tu sistema y por qué ocurren los problemas.

¿Quieres revisar la terminología de Kubernetes? Lee Desmitificando Kubernetes en 5 minutos.

¿Qué es la observabilidad en Kubernetes?

Las personas suelen usar observabilidad como un término paraguas. Pero típicamente, significaría métricas, registros y trazas. Es como tener una lente en el corazón de tus aplicaciones e infraestructura. Al recopilar y analizar estas salidas, la observabilidad te ayuda a detectar problemas potenciales antes de que interrumpan el servicio y optimizar el rendimiento general del sistema.

Tres cosas que vienen a la mente son:

Métricas

Estos son números y proporcionan datos sobre el uso de recursos, tasas de error y rendimiento. Algunas métricas populares son el uso de CPU y el uso de memoria en porcentaje, junto con metadatos adicionales sobre las métricas mismas (a veces llamadas dimensiones).

Registros

Los registros proporcionan un historial detallado de eventos dentro de su sistema, como errores o acciones de usuario. Ofrecen contexto para solucionar problemas y comprender el comportamiento de la aplicación. Estoy seguro de que has visto un “registro” antes: 

SystemVerilog

 

Traces

El rastreo ofrece una vista de extremo a extremo de las solicitudes a medida que pasan por los servicios, ayudando a identificar cuellos de botella o problemas de latencia. Siguiendo las solicitudes a través de varios microservicios, puedes determinar dónde surgen los problemas de rendimiento.

Los registros y trazas pueden sonar similares, pero son diferentes. Piensa en los registros como una instantánea de lo que sucedió, mientras que las trazas te dicen cómo y por qué sucedió a lo largo de todo el sistema.

La observabilidad no se limita realmente a un rol en una organización, en sí misma es una pieza de información crítica que se comparte entre diferentes roles. Por ejemplo, como ingeniero de software, instrumentas el código de la aplicación con métricas, registros y trazas. Ahora, necesitas algo para recopilar, almacenar y analizar estos datos, utilizando herramientas como Prometheus para métricas y Jaeger para trazas.

Si aún no estás convencido de la Observabilidad, resumiré:

  1. Se asegura de que todo funcione de manera fluida y eficiente identificando cuellos de botella de rendimiento.
  2. Mejora la resiliencia del sistema y ayuda a las aplicaciones a recuperarse de fallos (con suerte) rápidamente.
  3. La monitorización continua permite a los equipos detectar anomalías temprano, previniendo brechas de seguridad y asegurando que los datos sensibles estén protegidos.
  4. Puedes construir un panel de control maravilloso, que te ayude a obtener mejores ideas sobre el rendimiento del sistema. ¡Incluso puede ayudarte a ahorrar costos significativos en infraestructura (te estoy mirando a ti, AWS!).

Espera, también mencioné la Monitorización arriba. Entonces, ¿qué es eso y cómo es ESO diferente?

Mientras que la observabilidad y la monitorización están relacionadas, sirven a propósitos diferentes. La monitorización implica establecer controles/alertas predefinidos para asegurar que un sistema esté funcionando dentro de parámetros aceptables, tus SLAs/SLOs. La observabilidad, por otro lado, va más allá al proporcionar una comprensión completa del comportamiento del sistema. No se trata solo de saber cuándo algo falla; se trata de entender por qué y cómo sucedió. Tanto la monitorización como la observabilidad son esenciales para la gestión efectiva del sistema.

Llamado: OpenTelemetry

OpenTelemetry (también conocido como OTel) es una destacada colección de APIs, SDKs y herramientas de código abierto. Úsalo para instrumentar, generar, recopilar y exportar datos de telemetría (métricas, registros y trazas) que te ayuden a analizar el rendimiento y comportamiento de tu software. OpenTelemetry se integra con muchas librerías populares y frameworks, y soporta instrumentación basada en código y sin código en diversos entornos de Kubernetes.

Conclusión

Para concluir, La observabilidad es más que un requisito técnico: es un imperativo estratégico para las organizaciones que buscan mantenerse por delante en el competitivo mercado actual. Al aprovechar las herramientas y estrategias adecuadas, como OTel para la recolección de datos unificada, las organizaciones pueden monitorear, solucionar problemas y optimizar continuamente sus aplicaciones de Kubernetes. A través de una mejor visibilidad del rendimiento del sistema, las organizaciones pueden tomar decisiones basadas en datos, mejorar la confiabilidad de las aplicaciones y alcanzar sus objetivos comerciales de manera más efectiva.

No sé quién dijo eso, pero me encanta esta cita: ¡Deja de adivinar, comienza a saber!

Source:
https://dzone.com/articles/the-must-have-guide-to-kubernetes-observability