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 hace hincapié 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 distintas 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 correctamente 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 tanto para el lanzamiento como para las operaciones del 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 respaldar los procesos de CloudOps. |
| Administración |
|
Recomendaciones
Para garantizar la preparación y el rendimiento operativos con CloudOps, ten en cuenta las recomendaciones de las siguientes secciones. Cada recomendación de este documento es pertinente 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 de 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 gobernanza de la preparación operativa.
Define SLOs:
Los SLO deben ser específicos, medibles, alcanzables, relevantes y con plazos determinados (SMART), y deben reflejar el nivel de servicio y rendimiento que deseas.
- Específico: Articula con claridad el nivel de servicio y rendimiento requerido.
- Medible: Cuantificable y rastreable.
- Alcanzable: Se puede lograr dentro de los límites de las capacidades y los recursos de tu organización.
- Pertinente: Se alinea con los objetivos comerciales y las prioridades de la empresa.
- Limitado en el tiempo: Tiene un plazo definido para la medición y la evaluación.
Por ejemplo, un SLO para una aplicación web podría ser "99.9% de disponibilidad" o "tiempo de respuesta promedio inferior a 200 ms". Estos SLO definen con claridad el nivel de servicio y rendimiento requerido para la aplicación web, y se pueden medir y supervisar con el tiempo.
Define los ANS:
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 soluciones por incumplimiento. Los ANS funcionan como un acuerdo contractual entre las dos partes, lo que garantiza que ambas comprendan claramente las expectativas y obligaciones asociadas con el servicio en la nube.
Realiza un seguimiento de los SLO:
Usa Cloud Monitoring y los indicadores de nivel de servicio (SLI) para hacer un seguimiento de los SLO. Monitoring proporciona funciones integrales de supervisión y observabilidad que permiten que tu organización recopile y analice 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 supervisar los SLO con el tiempo. Con estas herramientas, puedes supervisar y administrar de forma eficaz los servicios en la nube, y asegurarte de que cumplan con los SLO y los ANS.
Definir, comunicar y hacer un seguimiento claro de los SLO y los ANS para todos tus servicios en la nube críticos ayuda a garantizar la confiabilidad y el rendimiento de tus aplicaciones y servicios implementados.
Implementar 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 pertinente para las áreas de enfoque de procesos y herramientas de la preparación operativa.
Implementar una combinación de soluciones de observabilidad te proporciona una estrategia de observabilidad integral que abarca varios aspectos de tu infraestructura y aplicaciones de nube. Google Cloud Observability es una plataforma unificada para recopilar, analizar y visualizar métricas, registros y seguimientos de varios servicios, aplicaciones y fuentes externas deGoogle Cloud . Con 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 potenciada por el 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. Si usas este enfoque de combinación, puedes identificar y abordar problemas de forma proactiva, optimizar el uso de recursos y garantizar la confiabilidad y 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 al sistema a sus límites para identificar posibles cuellos de botella y limitaciones de rendimiento. Esta recomendación es pertinente para las áreas de enfoque de procesos y herramientas de la preparación operativa.
Prueba el rendimiento: Usa servicios de pruebas de carga para simular patrones de tráfico reales y someter tus aplicaciones a pruebas de esfuerzo. Estas herramientas proporcionan información valiosa sobre el comportamiento de tu sistema en diversas condiciones de carga y pueden ayudarte a identificar las áreas que requieren optimización.
Optimiza el rendimiento: Según los resultados de las pruebas de rendimiento, puedes tomar decisiones para optimizar tu infraestructura de nube y tus aplicaciones para obtener un rendimiento y una escalabilidad óptimos. Esta optimización puede implicar ajustar la asignación de recursos, ajustar las configuraciones o implementar mecanismos de almacenamiento en caché.
Por ejemplo, si notas 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 ofrezcan una experiencia fluida y responsiva para tus usuarios. Esto puede ayudarte a mantener una ventaja competitiva y generar confianza con tus clientes.
Planifica y administra la capacidad
Para mantener tus sistemas en la nube en funcionamiento y escalarlos en respuesta a los cambios en la demanda, debes planificar y administrar de forma activa la capacidad de los recursos en la nube. Esta recomendación respalda las áreas de enfoque de preparación operativa de los procesos y las herramientas.
Considera los límites de servicio y administra las cuotas de recursos: Para planificar la capacidad de tus recursos de nube, comienza con los límites estrictos (las restricciones fijas) de los servicios que planeas usar.
- Estima los requisitos de cuota para el procesamiento, el almacenamiento, los límites de API y otros recursos que necesites. Solicita ajustes de cuota adecuados antes de que necesites los recursos.
- Carga métricas de Cloud Monitoring en BigQuery y úsalas para identificar patrones de tráfico y hacer un seguimiento de la carga del sistema con el tiempo.
- Prevé la demanda de recursos en función de las próximas campañas de marketing, los registros de usuarios y los lanzamientos de funciones. También considera tus compromisos de ANS actuales y planificados.
Diseña para lograr flexibilidad y eficiencia: Cuando planifiques la capacidad de tus implementaciones de Cloud, desvincula los componentes de la aplicación de tipos de máquinas específicos. Cuando fijas una carga de trabajo a un solo tipo de máquina, no puedes aprovechar el hardware de nube más reciente ni los cambios en la capacidad regional.
- Para las cargas de trabajo que necesitan hardware especializado, como instancias con mucha memoria o GPU, asegúrate de poder obtener recursos cuando sea necesario. Usa las reservas futuras para obtener una garantía de capacidad para los tipos de máquinas esenciales con hasta un año de anticipación.
- Para las cargas de trabajo de procesamiento por lotes o de entrenamiento de modelos que pueden tolerar horas de inicio variables, programa la capacidad de forma dinámica con VMs de inicio flexible. Estas VMs usan Dynamic Workload Scheduler para poner en cola las solicitudes y reducir los costos de procesamiento.
- Evita reservar familias de máquinas o recursos más antiguos para entornos de desarrollo temporales.
- Planifica los recursos en las regiones secundarias para que puedas realizar la conmutación por error de manera eficiente para la recuperación ante desastres (DR).
Implementa el escalado automático: Para adaptar de forma dinámica tus recursos de nube a las fluctuaciones de la carga de trabajo en tiempo real, implementa políticas de escalado automático. Los algoritmos de ajuste de escala automático evalúan métricas como el uso de CPU, la presión de memoria y la profundidad de la cola. Según la evaluación, los recursos se escalan horizontalmente durante los períodos de tráfico máximo y se reducen horizontalmente durante los períodos de baja utilización, lo que ayuda a optimizar el costo de tus recursos de la nube.
- Configura grupos de instancias administrados (MIG) con plantillas de instancias mixtas que combinen generaciones actuales y más recientes de tipos de máquinas.
- Asegúrate de que tus parámetros de configuración de MIG incluyan la flexibilidad de instancias (especificando varios tipos de máquinas compatibles) y la flexibilidad de ubicación (distribuyendo los objetivos en varias zonas de una región). Según los requisitos de capacidad actuales, tu sistema aprovisiona automáticamente el siguiente tipo de máquina preferido de tu lista de resguardo sin descartar solicitudes ni limitar los recursos de procesamiento.
Supervisa y optimiza de forma continua
Para administrar y optimizar las cargas de trabajo en la nube, debes establecer un proceso que permita supervisar y analizar de forma continua las métricas de rendimiento. Esta recomendación es pertinente para las áreas de enfoque de preparación operativa de procesos y herramientas.
Haz un seguimiento de los datos y recopílalos:
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 garantizar que tu infraestructura de nube cumpla o supere de forma constante tus expectativas de rendimiento.
Revisa los registros y los seguimientos:
Los registros proporcionan información valiosa sobre los eventos, errores y 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 cómo se comportan 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.
Ajusta el rendimiento:
Usa técnicas de ajuste de rendimiento para optimizar de forma significativa los tiempos de respuesta de la aplicación 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.
- Creación de perfiles de código: Identifica las áreas de tu código que consumen recursos excesivos o causan problemas de rendimiento.