Asegurar la preparación operativa y el rendimiento con CloudOps

Last reviewed 2024-10-31 UTC

Este principio del pilar de excelencia operativa del Google Cloud framework Well-Architected te ayuda a asegurar la preparación operativa y el rendimiento de tus cargas de trabajo en la nube. Se centra en establecer expectativas y compromisos claros sobre el rendimiento del servicio, implementar una monitorización y alertas sólidas, realizar pruebas de rendimiento y planificar de forma proactiva las necesidades de capacidad.

Descripción general de los principios

Cada organización puede interpretar la disponibilidad operativa de una forma diferente. La preparación operativa es la forma en que tu organización se prepara para operar cargas de trabajo en Google Cloudcorrectamente. Para operar una carga de trabajo en la nube compleja y multinivel, es necesario planificar cuidadosamente tanto la puesta en marcha como las operaciones del day-2. Estas operaciones se suelen denominar 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 necesarios para preparar el funcionamiento de 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
Mano de obra
  • Definir roles y responsabilidades claros para los equipos que gestionan y operan los recursos en la nube.
  • Asegurarse de que los miembros del equipo tengan las habilidades adecuadas.
  • Desarrollar un programa de aprendizaje.
  • Establecer una estructura de equipo clara.
  • Contratar a los profesionales necesarios.
Procesos
  • Observabilidad.
  • Gestionar interrupciones del servicio.
  • Entrega en la nube.
  • Operaciones fundamentales en la nube.
Herramientas Herramientas necesarias para admitir procesos de CloudOps.
Gestión
  • Niveles de servicio e informes.
  • Información financiera de Cloud.
  • Modelo operativo de la nube.
  • Juntas de revisión y gobernanza de la arquitectura.
  • Arquitectura y cumplimiento de Cloud.

Recomendaciones

Para asegurar la disponibilidad y el rendimiento operativos mediante CloudOps, ten en cuenta las recomendaciones de las siguientes secciones. Cada recomendación de este documento se relaciona con una o varias de las áreas de enfoque de la preparación operativa.

Definir SLOs y SLAs

Una de las responsabilidades principales del equipo de operaciones en la nube es definir los objetivos de nivel de servicio (SLOs) y los acuerdos de nivel de servicio (SLAs) de todas las cargas de trabajo críticas. Esta recomendación está relacionada con el área de enfoque de la preparación operativa de la gobernanza.

Los objetivos de nivel de servicio deben ser específicos, medibles, alcanzables, relevantes y con plazos concretos (SMART), y deben reflejar el nivel de servicio y el rendimiento que quieres.

  • Específico: articula claramente el nivel de servicio y el rendimiento necesarios.
  • Medible: cuantificable y monitorizable.
  • Alcanzable: se puede lograr con las capacidades y los recursos de tu organización.
  • Relevante: alineado con los objetivos y las prioridades de la empresa.
  • Acotado en el tiempo: tiene un plazo definido para la medición y la evaluación.

Por ejemplo, un SLO de una aplicación web podría ser "disponibilidad del 99,9 %" o "tiempo de respuesta medio inferior a 200 ms". Estos SLOs definen claramente el nivel de servicio y el rendimiento necesarios para la aplicación web, y se pueden medir y monitorizar a lo largo del tiempo.

Los ANS definen los compromisos con los clientes en relación con la disponibilidad, el rendimiento y la asistencia de los servicios, incluidas las sanciones o las soluciones en caso de incumplimiento. Los SLAs deben incluir detalles específicos sobre los servicios que se prestan, el nivel de servicio que se puede esperar, las responsabilidades tanto del proveedor de servicios como del cliente, y las sanciones o soluciones en caso de incumplimiento. Los ANSs son un acuerdo contractual entre las dos partes que garantiza que ambas tengan una idea clara de las expectativas y las obligaciones asociadas al servicio en la nube.

Google Cloud proporciona herramientas como Cloud Monitoring e indicadores de nivel de servicio para ayudarte a definir y monitorizar los SLOs. Cloud Monitoring ofrece funciones de monitorización y observabilidad completas que permiten a tu organización recoger y analizar métricas relacionadas con la disponibilidad, el rendimiento y la latencia de las aplicaciones y los servicios basados en la nube. Los indicadores de nivel de servicio son métricas específicas que puedes usar para medir y monitorizar los objetivos de nivel de servicio a lo largo del tiempo. Si utilizas estas herramientas, podrás monitorizar y gestionar los servicios en la nube de forma eficaz, así como asegurarte de que cumplen los objetivos y los acuerdos de nivel de servicio.

Definir y comunicar claramente los SLOs y los SLAs de todos tus servicios en la nube críticos te ayudará a asegurar la fiabilidad y el rendimiento de las aplicaciones y los servicios que hayas implementado.

Implementar una observabilidad completa

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 observabilidad de Google Cloud y soluciones de terceros. Esta recomendación está relacionada con las siguientes áreas de enfoque de la preparación operativa: procesos y herramientas.

Implementar una combinación de soluciones de observabilidad te proporciona una estrategia de observabilidad completa que abarca varios aspectos de tu infraestructura y aplicaciones en la nube. Google Cloud Observability es una plataforma unificada para recoger, analizar y visualizar métricas, registros y trazas de variosGoogle Cloud servicios, aplicaciones y fuentes externas. Con Cloud Monitoring, puedes obtener información valiosa sobre la utilización de recursos, las características de rendimiento y el estado general de tus recursos.

Para garantizar una monitorización completa, monitoriza métricas importantes que se correspondan con los indicadores de estado del sistema, como la utilización de la CPU, el uso de la memoria, el tráfico de red, las operaciones de E/S de disco y los tiempos de respuesta de las aplicaciones. También debes tener en cuenta las métricas específicas de tu empresa. Si monitorizas estas métricas, puedes identificar posibles cuellos de botella, problemas de rendimiento y limitaciones de recursos. Además, puede configurar alertas para notificar de forma proactiva a los equipos correspondientes sobre posibles problemas o anomalías.

Para mejorar aún más tus capacidades de monitorización, puedes integrar soluciones de terceros con Google Cloud Observability. Estas soluciones pueden proporcionar funciones adicionales, como analíticas avanzadas, detección de anomalías basada en aprendizaje automático y funciones de gestión de incidentes. Esta combinación de herramientas de observabilidad de Google Cloud y soluciones de terceros te permite crear un ecosistema de monitorización sólido y personalizable que se adapte a tus necesidades específicas. Si utilizas esta combinación, puedes identificar y resolver problemas de forma proactiva, optimizar el uso de los recursos y asegurar la fiabilidad y la disponibilidad generales de tus aplicaciones y servicios en la nube.

Implementar pruebas de rendimiento y de carga

Realizar pruebas de rendimiento periódicas te ayuda a asegurarte de que tus aplicaciones e infraestructura basadas en la nube puedan gestionar las cargas máximas y mantener un rendimiento óptimo. Las pruebas de carga simulan patrones de tráfico realistas. Las pruebas de estrés llevan el sistema al límite para identificar posibles cuellos de botella y limitaciones de rendimiento. Esta recomendación está relacionada con las siguientes áreas de enfoque de la preparación operativa: procesos y herramientas.

Herramientas como Cloud Load Balancing y los servicios de pruebas de carga pueden ayudarte a simular patrones de tráfico reales y a someter tus aplicaciones a pruebas de estrés. 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.

En función de los resultados de las pruebas de rendimiento, puedes tomar decisiones para optimizar tu infraestructura en la nube y tus aplicaciones con el fin de conseguir 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 detecta que su aplicación se ralentiza durante periodos de mucho tráfico, puede que tenga que aumentar el número de máquinas virtuales o contenedores asignados a la aplicación. También puede que tenga que ajustar la configuración de su servidor web o base de datos para mejorar el rendimiento.

Si realizas pruebas de rendimiento periódicamente e implementas las optimizaciones necesarias, puedes asegurarte de que tus aplicaciones e infraestructura basadas en la nube siempre funcionen con un rendimiento óptimo y ofrezcan una experiencia fluida y rápida a tus usuarios. De esta forma, podrás mantener una ventaja competitiva y ganarte la confianza de tus clientes.

Planificar y gestionar la capacidad

Planificar de forma proactiva las necesidades de capacidad futuras, tanto orgánicas como inorgánicas, te ayuda a asegurar el buen funcionamiento y la escalabilidad de tus sistemas basados en la nube. Esta recomendación está relacionada con el área de enfoque de preparación operativa de los procesos.

Para planificar la capacidad futura, es necesario conocer y gestionar las cuotas de varios recursos, como las instancias de computación, el almacenamiento y las solicitudes de API. Al analizar los patrones de uso históricos, las proyecciones de crecimiento y los requisitos empresariales, puede anticipar con precisión los requisitos de capacidad futuros. Puedes usar herramientas como Cloud Monitoring y BigQuery para recoger y analizar datos de uso, identificar tendencias y predecir la demanda futura.

Los patrones de uso históricos proporcionan información valiosa sobre la utilización de los recursos a lo largo del tiempo. Si examinas métricas como el uso de la CPU, el uso de la memoria y el tráfico de red, puedes identificar los periodos de alta demanda y los posibles cuellos de botella. Además, puedes estimar las necesidades de capacidad futuras haciendo proyecciones de crecimiento basadas en factores como el crecimiento de la base de usuarios, los nuevos productos y funciones, y las campañas de marketing. Cuando evalúes las necesidades de capacidad, también debes tener en cuenta los requisitos empresariales, como los acuerdos de nivel de servicio y los objetivos de rendimiento.

Cuando determines el tamaño de los recursos de una carga de trabajo, ten en cuenta los factores que pueden afectar al uso de los recursos. Las variaciones estacionales, como los periodos de compras navideñas o las rebajas de fin de trimestre, pueden provocar picos temporales en la demanda. Los eventos programados, como los lanzamientos de productos o las campañas de marketing, también pueden aumentar el tráfico de forma significativa. Para asegurarte de que tu sistema principal y de recuperación tras fallos puedan gestionar picos de demanda inesperados, planifica una capacidad que pueda admitir una conmutación por error correcta durante interrupciones como desastres naturales y ciberataques.

El autoescalado es una estrategia importante para ajustar dinámicamente los recursos de la nube en función de las fluctuaciones de la carga de trabajo. Si usas políticas de autoescalado, puedes escalar automáticamente las instancias de computación, el almacenamiento y otros recursos en respuesta a los cambios en la demanda. De esta forma, se asegura un rendimiento óptimo durante los periodos de mayor actividad y se minimizan los costes cuando la utilización de los recursos es baja. Los algoritmos de autoescalado usan métricas como el uso de la CPU, el uso de la memoria y la profundidad de la cola para determinar cuándo escalar los recursos.

Monitorizar y optimizar continuamente

Para gestionar y optimizar las cargas de trabajo en la nube, debes establecer un proceso para monitorizar y analizar continuamente las métricas de rendimiento. Esta recomendación se aplica a las siguientes áreas de interés de la preparación operativa: procesos y herramientas.

Para establecer un proceso de monitorización y análisis continuos, debe hacer un seguimiento, recoger y evaluar los datos relacionados con varios aspectos de su entorno de nube. Con estos datos, puede identificar de forma proactiva las áreas de mejora, optimizar el uso de los recursos y asegurarse de que su infraestructura de nube cumple o supera sus expectativas de rendimiento.

Un aspecto importante de la monitorización del rendimiento es revisar periódicamente los registros y los rastreos. Los registros proporcionan información valiosa sobre los eventos, errores y advertencias del sistema. Los rastreos proporcionan información detallada sobre el flujo de solicitudes a través de tu aplicación. Al analizar los registros y los seguimientos, puede identificar posibles problemas, determinar las causas raíz de los problemas y comprender mejor cómo se comportan sus aplicaciones en diferentes condiciones. Las métricas como el tiempo de ida y vuelta entre servicios pueden ayudarte a identificar y comprender los cuellos de botella de tus cargas de trabajo.

Además, puedes usar técnicas de optimización del rendimiento para mejorar significativamente los tiempos de respuesta de las aplicaciones y la eficiencia general. A continuación, se incluyen ejemplos de técnicas que puedes usar:

  • Almacenamiento en caché: almacena en memoria los datos a los que se accede con frecuencia para reducir la necesidad de repetir consultas de bases 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.
  • Perfil de código: identifica las áreas de tu código que consumen recursos excesivos o provocan problemas de rendimiento.

Si aplicas estas técnicas, podrás optimizar tus aplicaciones y asegurarte de que se ejecuten de forma eficiente en la nube.