Este principio del pilar de excelencia operativa del Google Cloud Well-Architected Framework te ayuda a garantizar la preparación operativa y el rendimiento de tus cargas de trabajo en la nube. Se enfoca en establecer expectativas y compromisos claros para el rendimiento del servicio, implementar una supervisión y alertas sólidas, realizar pruebas de rendimiento y planificar de forma proactiva las necesidades de capacidad.
Descripción general del principio
Las diferentes organizaciones pueden interpretar la preparación operativa de manera diferente. La preparación operativa es la forma en que tu organización se prepara para operar con éxito las cargas de trabajo en Google Cloud. La preparación para operar una carga de trabajo en la nube compleja y de varias capas requiere una planificación cuidadosa para las operaciones de lanzamiento y day-2 Estas operaciones suelen llamarse CloudOps.
Áreas de enfoque de la preparación operativa
La preparación operativa consta de cuatro áreas de enfoque. Cada área de enfoque consta de un conjunto de actividades y componentes que son necesarios para prepararse para operar una aplicación o un entorno complejos en Google Cloud. En la siguiente tabla, se enumeran los componentes y las actividades de cada área de enfoque:
| Área de enfoque de la preparación operativa | Actividades y componentes |
|---|---|
| Personal |
|
| Procesos |
|
| Herramientas | Herramientas necesarias para admitir los procesos de CloudOps |
| Administración |
|
Recomendaciones
Para garantizar la preparación operativa y el rendimiento con CloudOps, considera las recomendaciones de las siguientes secciones. Cada recomendación de este documento es relevante para una o más de las áreas de enfoque de la preparación operativa.
Define SLO y ANS
Una responsabilidad principal del equipo de operaciones en la nube es definir los objetivos de nivel de servicio (SLO) y los acuerdos de nivel de servicio (ANS) para todas las cargas de trabajo críticas. Esta recomendación es relevante para el área de enfoque de administración de la preparación operativa .
Los SLO deben ser específicos, medibles, alcanzables, relevantes y con plazos determinados (SMART), y deben reflejar el nivel de servicio y el rendimiento que deseas.
- Específicos: Articulan claramente el nivel de servicio y el rendimiento requeridos.
- Medibles: Cuantificables y con seguimiento.
- Alcanzables: Se pueden lograr dentro de los límites de las capacidades y los recursos de tu organización.
- Relevantes: Alineados con los objetivos y las prioridades comerciales.
- Con plazos determinados: Tienen un período definido para la medición y la evaluación.
Por ejemplo, un SLO para una aplicación web podría ser "disponibilidad del 99.9%" o "tiempo de respuesta promedio inferior a 200 ms". Estos SLO definen claramente el nivel de servicio y el rendimiento requeridos para la aplicación web, y se pueden medir y hacer un seguimiento a lo largo del tiempo.
Los ANS describen los compromisos con los clientes en relación con la disponibilidad, el rendimiento y la asistencia del servicio, incluidas las penalizaciones o los recursos por incumplimiento. Los ANS deben incluir detalles específicos sobre los servicios que se proporcionan, el nivel de servicio que se puede esperar, las responsabilidades del proveedor de servicios y del cliente, y las penalizaciones o los recursos por incumplimiento. Los ANS sirven como un acuerdo contractual entre las dos partes, lo que garantiza que ambas tengan una comprensión clara de las expectativas y las obligaciones asociadas con el servicio en la nube.
Google Cloud proporciona herramientas como Cloud Monitoring y los indicadores de nivel de servicio (SLI) para ayudarte a definir y hacer un seguimiento de los SLO. Cloud Monitoring proporciona capacidades integrales de supervisión y observabilidad que permiten a tu organización recopilar y analizar métricas relacionadas con la disponibilidad, el rendimiento y la latencia de las aplicaciones y los servicios basados en la nube. Los SLI son métricas específicas que puedes usar para medir y hacer un seguimiento de los SLO a lo largo del tiempo. Si utilizas estas herramientas, puedes supervisar y administrar de manera eficaz los servicios en la nube, y asegurarte de que cumplan con los SLO y los ANS.
Definir y comunicar claramente los SLO y los ANS para todos tus servicios críticos en la nube ayuda a garantizar la confiabilidad y el rendimiento de las aplicaciones y los servicios implementados.
Implementa la observabilidad integral
Para obtener visibilidad en tiempo real del estado y el rendimiento de tu entorno de nube, te recomendamos que uses una combinación de herramientas de Google Cloud Observability y soluciones de terceros. Esta recomendación es relevante para estas áreas de enfoque de la preparación operativa: procesos y herramientas.
La implementación de una combinación de soluciones de observabilidad te proporciona una estrategia de observabilidad integral que abarca varios aspectos de tu infraestructura y aplicaciones en la nube. Google Cloud Observability es una plataforma unificada para recopilar, analizar y visualizar métricas, registros y seguimientos de varios Google Cloud servicios, aplicaciones y fuentes externas. Con Cloud Monitoring, puedes obtener estadísticas sobre el uso de recursos, las características de rendimiento y el estado general de tus recursos.
Para garantizar una supervisión integral, supervisa las métricas importantes que se alinean con los indicadores de estado del sistema, como el uso de CPU, el uso de memoria, el tráfico de red, la E/S de disco y los tiempos de respuesta de las aplicaciones. También debes considerar las métricas específicas de la empresa. Con el seguimiento de estas métricas, podrás identificar posibles cuellos de botella, problemas de rendimiento y restricciones de recursos. Además, puedes configurar alertas para notificar de forma proactiva a los equipos pertinentes sobre posibles problemas o anomalías.
Para mejorar aún más tus capacidades de supervisión, puedes integrar soluciones de terceros con Google Cloud Observability. Estas soluciones pueden proporcionar funciones adicionales, como estadísticas avanzadas, detección de anomalías con tecnología de aprendizaje automático y capacidades de administración de incidentes. Esta combinación de herramientas de Google Cloud Observability y soluciones de terceros te permite crear un ecosistema de supervisión sólido y personalizable que se adapta a tus necesidades específicas. Con este enfoque combinado, puedes identificar y abordar problemas de forma proactiva, optimizar el uso de recursos y garantizar la confiabilidad y la disponibilidad generales de tus aplicaciones y servicios en la nube.
Implementa pruebas de rendimiento y carga
Realizar pruebas de rendimiento periódicas te ayuda a garantizar que tus aplicaciones y tu infraestructura basadas en la nube puedan controlar las cargas máximas y mantener un rendimiento óptimo. Las pruebas de carga simulan patrones de tráfico realistas. Las pruebas de esfuerzo llevan el sistema a sus límites para identificar posibles cuellos de botella y limitaciones de rendimiento. Esta recomendación es relevante para estas áreas de enfoque de la preparación operativa: procesos y herramientas.
Las herramientas como Cloud Load Balancing y los servicios de pruebas de carga pueden ayudarte a simular patrones de tráfico del mundo real y a realizar pruebas de esfuerzo en tus aplicaciones. Estas herramientas proporcionan información valiosa sobre el comportamiento de tu sistema en diversas condiciones de carga y pueden ayudarte a identificar áreas que requieren optimización.
Según los resultados de las pruebas de rendimiento, puedes tomar decisiones para optimizar tu infraestructura de nube y aplicaciones para obtener un rendimiento y una escalabilidad óptimos. Esta optimización puede implicar ajustar la asignación de recursos, configurar los parámetros o implementar mecanismos de almacenamiento en caché.
Por ejemplo, si descubres que tu aplicación experimenta ralentizaciones durante períodos de tráfico alto, es posible que debas aumentar la cantidad de máquinas virtuales o contenedores que se asignan a la aplicación. Como alternativa, es posible que debas ajustar la configuración de tu servidor web o base de datos para mejorar el rendimiento.
Si realizas pruebas de rendimiento con regularidad y aplicas las optimizaciones necesarias, puedes asegurarte de que tus aplicaciones y tu infraestructura basadas en la nube siempre se ejecuten con el máximo rendimiento y brinden una experiencia fluida y responsiva a tus usuarios. Esto puede ayudarte a mantener una ventaja competitiva y generar confianza con tus clientes.
Planifica y administra la capacidad
Planificar de forma proactiva las necesidades de capacidad futuras, ya sean orgánicas o inorgánicas, te ayuda a garantizar el funcionamiento y la escalabilidad sin problemas de tus sistemas basados en la nube. Esta recomendación es relevante para el área de enfoque de procesos de la preparación operativa.
La planificación de la capacidad futura incluye comprender y administrar cuotas de varios recursos, como las instancias de procesamiento, el almacenamiento y las solicitudes a la API. Si analizas los patrones de uso históricos, las proyecciones de crecimiento y los requisitos comerciales, puedes anticipar con precisión los requisitos de capacidad futuros. Puedes usar herramientas como Cloud Monitoring y BigQuery para recopilar y analizar datos de uso, identificar tendencias y predecir la demanda futura.
Los patrones de uso históricos proporcionan información valiosa sobre el uso de recursos a lo largo del tiempo. Si examinas métricas como el uso de CPU, el uso de memoria y el tráfico de red, puedes identificar períodos de alta demanda y posibles cuellos de botella. Además, puedes ayudar a estimar las necesidades de capacidad futuras si realizas proyecciones de crecimiento basadas en factores como el crecimiento de la base de usuarios, los productos y las funciones nuevos, y las campañas de marketing. Cuando evalúes las necesidades de capacidad, también debes considerar los requisitos comerciales, como los ANS y los objetivos de rendimiento.
Cuando determines el tamaño de los recursos para una carga de trabajo, considera los factores que pueden afectar el uso de los recursos. Las variaciones estacionales, como los períodos de compras navideñas o las ventas de fin de trimestre, pueden generar aumentos temporales en la demanda. Los eventos planificados, como los lanzamientos de productos o las campañas de marketing, también pueden aumentar significativamente el tráfico. Para asegurarte de que tu sistema principal y de recuperación ante desastres (DR) puedan controlar los aumentos inesperados en la demanda, planifica una capacidad que pueda admitir la conmutación por error correcta durante las interrupciones, como desastres naturales y ciberataques.
El ajuste de escala automático es una estrategia importante para ajustar de forma dinámica tus recursos de la nube en función de las fluctuaciones de la carga de trabajo. Con las políticas de ajuste de escala automático, puedes ajustar automáticamente las instancias de procesamiento, el almacenamiento y otros recursos en respuesta a los cambios en la demanda. Esto garantiza un rendimiento óptimo durante los períodos de mayor actividad y, al mismo tiempo, minimiza los costos cuando el uso de recursos es bajo. Los algoritmos de ajuste de escala automático usan métricas como el uso de CPU, el uso de memoria y la profundidad de la cola para determinar cuándo escalar los recursos.
Supervisa y optimiza de forma continua
Para administrar y optimizar las cargas de trabajo en la nube, debes establecer un proceso para supervisar y analizar de forma continua las métricas de rendimiento. Esta recomendación es relevante para estas áreas de enfoque de la preparación operativa: procesos y herramientas.
Para establecer un proceso de supervisión y análisis continuos, debes hacer un seguimiento, recopilar y evaluar los datos relacionados con varios aspectos de tu entorno de nube. Con estos datos, puedes identificar de forma proactiva las áreas de mejora, optimizar el uso de recursos y asegurarte de que tu infraestructura de nube cumpla o supere de manera constante tus expectativas de rendimiento.
Un aspecto importante de la supervisión del rendimiento es revisar periódicamente los registros y los seguimientos. Los registros proporcionan información valiosa sobre los eventos, los errores y las advertencias del sistema. Los seguimientos proporcionan información detallada sobre el flujo de solicitudes a través de tu aplicación. Si analizas los registros y los seguimientos, puedes identificar posibles problemas, identificar las causas raíz de los problemas y comprender mejor el comportamiento de tus aplicaciones en diferentes condiciones. Las métricas como el tiempo de ida y vuelta entre los servicios pueden ayudarte a identificar y comprender los cuellos de botella que se encuentran en tus cargas de trabajo.
Además, puedes usar técnicas de ajuste de rendimiento para mejorar significativamente los tiempos de respuesta de las aplicaciones y la eficiencia general. A continuación, se muestran ejemplos de técnicas que puedes usar:
- Almacenamiento en caché: Almacena los datos a los que se accede con frecuencia en la memoria para reducir la necesidad de realizar consultas repetidas a la base de datos o llamadas a la API.
- Optimización de la base de datos: Usa técnicas como la indexación y la optimización de consultas para mejorar el rendimiento de las operaciones de la base de datos.
- Generación de perfiles de código: Identifica las áreas de tu código que consumen recursos excesivos o causan problemas de rendimiento.
Si aplicas estas técnicas, puedes optimizar tus aplicaciones y asegurarte de que se ejecuten de manera eficiente en la nube.