Supervisión en Google Cloud: Métricas y Alertas para Funciones
Clase 7 de 19 • Curso de Google Serverless
Resumen
¿Qué es la supervisión en Google Cloud Platform?
Cuando hablamos de supervisión en Google Cloud Platform (GCP), nos referimos a la obtención de métricas, valores y alertas acerca de lo que está ocurriendo en nuestra plataforma. Al desarrollar software, uno de los objetivos principales es que nuestras soluciones sean confiables y mejoren constantemente en su desempeño. La supervisión nos permite medir el rendimiento y tomar decisiones fundamentadas en datos para optimizar nuestras aplicaciones.
¿Cómo se relaciona la supervisión con el rendimiento?
La clave está en el análisis de datos. Por ejemplo, ajustamos la memoria asignada a una función basada en datos de rendimiento para reducir el tiempo de procesamiento. Esto nos permite optimizar recursos y controlar gastos. Así, la supervisión se convierte en un pilar esencial para mejorar y mantener productos confiables: "aquello que no se mide no se puede mejorar."
¿Qué herramientas ofrece Google Cloud para supervisión?
Google Cloud nos proporciona una serie de herramientas bajo el paraguas de Stackdriver. Estas herramientas son vitales para obtener números y valores que faciliten la toma de decisiones:
- Logging: Registro detallado de lo que está sucediendo en la plataforma.
- Metrics: Reportes de valores predeterminados y personalizables.
- Trace: Análisis del tiempo que duran las peticiones a los servicios.
- Debugger: Permite una depuración en vivo sin afectar los recursos de producción.
- Profiler: Análisis detallado del código para identificar áreas de mejora en el rendimiento.
- Error Reporting: Registro y seguimiento de errores, ayudando a priorizar y manejar las incidencias.
¿Qué es Site Reliability Engineering (SRE) en Google?
Google ha implementado la filosofía de Site Reliability Engineering (SRE) como una manera de trabajar orientada a productos confiables. No es una herramienta o tecnología, sino una metodología para asegurar que los servicios sean estables y eficaces. En este contexto, SRE se fundamenta en tres métricas principales:
- SLO (Service Level Objective): Indicador interno de rendimiento.
- SLA (Service Level Agreement): Acuerdo de nivel de servicio con los clientes finales.
- SLI (Service Level Indicator): Métrica utilizada internamente para evaluar el rendimiento.
¿Cómo se aplican estas métricas?
Por ejemplo, podríamos medir la estabilidad de un sitio web contando la proporción de solicitudes que retornan una respuesta satisfactoria (código HTTP 200) frente al total de solicitudes. Así, podemos establecer objetivos realistas, como un 95% de disponibilidad. Sin embargo, de cara a los clientes, podríamos comunicar un 90% para dejar un margen de maniobra ante posibles incidentes.
¿Qué papel juega la pirámide de monitoreo?
La supervisión es fundamental para productos confiables, y su base debe estar cimentada en un monitoreo eficaz. Esta pirámide comprende:
- Monitoreo y métricas: Información sobre el estado actual de la plataforma.
- Respuesta a incidentes: Capacidad de identificar, estudiar y corregir errores.
- Planificación de capacidad: Evaluar el crecimiento necesario en infraestructura.
- Automatización: Uso de herramientas para agilizar despliegues y reducir errores humanos.
Revisar esta pirámide de monitoreo nos ayuda a asegurarnos de que estamos construyendo una base sólida para productos fiables. Google sugiere consultar su bibliografía publicada en Site Reliability, con libros gratuitos que describen cómo implementan SRE en sus servicios.
¿Cómo se implementan las herramientas de supervisión en funciones de Google Cloud?
En la próxima fase, enfocaremos la implementación práctica de estas herramientas en Google Cloud, especialmente centradas en las funciones. Exploraremos lo siguiente:
- Logging: Opciones para registrar eventos específicos.
- Monitoring y Dashboards: Creación de paneles personalizados para visualizar el comportamiento en tiempo real.
- Alertas: Configuración de notificaciones ante eventos críticos.
Estas acciones prácticas nos permitirán establecer un sistema de monitoreo eficaz, facilitando la gestión proactiva y la mejora continua de las aplicaciones.
Se recomienda seguir investigando y aplicando estos conceptos y herramientas en sus proyectos para garantizar un desarrollo de software constante y exitoso.