Optimiza el uso de recursos

Last reviewed 2024-09-25 UTC

Este principio del pilar de optimización de costos del framework de arquitectura de Google Cloud proporciona recomendaciones para ayudarte a planificar y aprovisionar recursos que coincidan con los requisitos y los patrones de consumo de tus cargas de trabajo en la nube.

Descripción general de los principios

Para optimizar el costo de tus recursos en la nube, debes comprender en detalle los requisitos de recursos y los patrones de carga de tus cargas de trabajo. Esta comprensión es la base de un modelo de costos bien definido que te permite pronosticar el costo total de propiedad (TCO) y, además, identificar los impulsores de costos a lo largo de tu recorrido de adopción de la nube. Si analizas y pronosticas de forma proactiva los gastos en la nube, puedes tomar decisiones fundamentadas sobre el aprovisionamiento de recursos, el uso y la optimización de costos. Este enfoque te permite controlar la inversión en la nube, evitar el sobreaprovisionamiento y garantizar que los recursos de la nube se alineen con las necesidades dinámicas de tus cargas de trabajo y entornos.

Recomendaciones

Para optimizar de manera eficaz el uso de recursos de la nube, considera las siguientes recomendaciones.

Elige recursos específicos del entorno

Cada entorno de implementación tiene requisitos diferentes de disponibilidad, confiabilidad y escalabilidad. Por ejemplo, los desarrolladores pueden preferir un entorno que les permita implementar y ejecutar aplicaciones rápidamente durante períodos cortos, pero es posible que no necesiten alta disponibilidad. Por otro lado, un entorno de producción suele necesitar alta disponibilidad. Para maximizar el uso de tus recursos, define requisitos específicos del entorno según las necesidades de tu empresa. En la siguiente tabla, se enumeran ejemplos de requisitos específicos del entorno.

Entorno Requisitos
Producción
  • Alta disponibilidad
  • Rendimiento predecible
  • Estabilidad operativa
  • Seguridad con recursos sólidos
Desarrollo y pruebas
  • Rentabilidad
  • Infraestructura flexible con capacidad de ráfaga
  • Infraestructura efímera cuando no es necesaria la persistencia de los datos
Otros entornos (como la etapa de pruebas y el control de calidad)
  • Asignación de recursos personalizada según los requisitos específicos del entorno

Elige recursos específicos de la carga de trabajo

Cada una de tus cargas de trabajo en la nube puede tener diferentes requisitos de disponibilidad, escalabilidad, seguridad y rendimiento. Para optimizar los costos, debes alinear las elecciones de recursos con los requisitos específicos de cada carga de trabajo. Por ejemplo, una aplicación sin estado podría no requerir el mismo nivel de disponibilidad o confiabilidad que un backend con estado. En la siguiente tabla, se enumeran más ejemplos de requisitos específicos de la carga de trabajo.

Tipo de carga de trabajo Requisitos de las cargas de trabajo Opciones de recursos
Servicio crítico Disponibilidad continua, seguridad sólida y alto rendimiento Recursos premium y servicios administrados, como Spanner, para lograr alta disponibilidad y coherencia global de los datos
No importantes Infraestructura rentable y de ajuste de escala automático Recursos con funciones básicas y recursos efímeros, como las VMs Spot
Controlado por eventos Escalamiento dinámico según la demanda actual de capacidad y rendimiento Servicios sin servidores, como Cloud Run y funciones de Cloud Run
Cargas de trabajo experimentales Entorno flexible y de bajo costo para el desarrollo, la iteración, las pruebas y la innovación rápidos Recursos con funciones básicas, recursos efímeros, como las VM Spot, y entornos de zona de pruebas con límites de inversión definidos

Un beneficio de la nube es la oportunidad de aprovechar la potencia de procesamiento más adecuada para una carga de trabajo determinada. Algunas cargas de trabajo se desarrollan para aprovechar los conjuntos de instrucciones del procesador, y es posible que otras no se diseñen de esta manera. Genera comparativas y perfiles de tus cargas de trabajo según corresponda. Categorizar tus cargas de trabajo y elegir recursos específicos para cada una (por ejemplo, elegir las familias de máquinas adecuadas para las VMs de Compute Engine) Esta práctica ayuda a optimizar los costos, habilitar la innovación y mantener el nivel de disponibilidad y rendimiento que necesitan tus cargas de trabajo.

A continuación, se muestran ejemplos de cómo puedes implementar esta recomendación:

  • Para las cargas de trabajo esenciales que se entregan a usuarios distribuidos a nivel global, considera usar Spanner. Spanner elimina la necesidad de implementaciones complejas de bases de datos, ya que garantiza la confiabilidad y la coherencia de los datos en todas las regiones.
  • Para las cargas de trabajo con niveles de carga fluctuantes, usa el ajuste de escala automático para asegurarte de que no incurras en costos cuando la carga sea baja y, al mismo tiempo, mantengas suficiente capacidad para satisfacer la carga actual. Puedes configurar el ajuste de escala automático para muchos servicios de Google Cloud, incluidas las VM de Compute Engine, los clústeres de Google Kubernetes Engine (GKE) y Cloud Run. Cuando configuras el escalamiento automático, puedes establecer límites máximos de escalamiento para asegurarte de que los costos permanezcan dentro de los presupuestos especificados.

Selecciona regiones según los requisitos de costo

Para tus cargas de trabajo en la nube, evalúa cuidadosamente las regiones disponibles de Google Cloud y elige aquellas que se alineen con tus objetivos de costos. Es posible que la región con el costo más bajo no ofrezca una latencia óptima o que no cumpla con tus requisitos de sostenibilidad. Toma decisiones fundamentadas sobre dónde implementar tus cargas de trabajo para lograr el equilibrio deseado. Puedes usar el selector de región de Google Cloud para comprender las compensaciones entre el costo, la sostenibilidad, la latencia y otros factores.

Usa las opciones de optimización de costos integradas

Los productos de Google Cloud proporcionan funciones integradas para ayudarte a optimizar el uso de los recursos y controlar los costos. En la siguiente tabla, se muestran ejemplos de funciones de optimización de costos que puedes usar en algunos productos de Google Cloud:

Producto Función de optimización de costos
Compute Engine
GKE
Cloud Storage
  • Usa la Administración del ciclo de vida de los objetos para realizar la transición automática de los datos a clases de almacenamiento de menor costo según su antigüedad o según los patrones de acceso.
  • Usa Autoclass para mover datos de forma dinámica a la clase de almacenamiento más rentable según los patrones de uso.
BigQuery
  • Usa los precios basados en la capacidad para reducir los costos de procesamiento de consultas de las cargas de trabajo en estado estable.
  • Optimiza el rendimiento y los costos de las consultas con técnicas de partición y agrupamiento en clústeres.
Google Cloud VMware Engine

Cómo optimizar el uso compartido de recursos

Para maximizar el uso de los recursos de la nube, puedes implementar varias aplicaciones o servicios en la misma infraestructura y, al mismo tiempo, cumplir con la seguridad y otros requisitos de las aplicaciones. Por ejemplo, en los entornos de desarrollo y pruebas, puedes usar la misma infraestructura de nube para probar todos los componentes de una aplicación. En el entorno de producción, puedes implementar cada componente en un conjunto de recursos independiente para limitar el alcance del impacto en caso de incidentes.

A continuación, se muestran ejemplos de cómo puedes implementar esta recomendación:

  • Usa una sola instancia de Cloud SQL para varios entornos que no sean de producción.
  • Permite que varios equipos de desarrollo compartan un clúster de GKE con la función de administración de equipos de flota en GKE Enterprise con los controles de acceso adecuados.
  • Usa Autopilot de GKE para aprovechar las técnicas de optimización de costos, como el empaquetado en contenedores y el ajuste de escala automático que GKE implementa de forma predeterminada.
  • Para las cargas de trabajo de IA y de procesamiento de datos, ahorra costos de GPU con estrategias de uso compartido de GPU, como GPUs de varias instancias, GPUs de uso compartido de tiempo y NVIDIA MPS.

Desarrolla y mantiene arquitecturas de referencia

Crea y mantén un repositorio de arquitecturas de referencia que se adapten para satisfacer los requisitos de diferentes entornos de implementación y tipos de cargas de trabajo. Para optimizar el proceso de diseño e implementación de proyectos individuales, un equipo como un Cloud Center of Excellence (CCoE) puede administrar los esquemas de forma centralizada. Los equipos de proyecto pueden elegir los esquemas adecuados en función de criterios claramente definidos para garantizar la coherencia arquitectónica y la adopción de prácticas recomendadas. Para los requisitos que son únicos para un proyecto, el equipo del proyecto y el equipo de arquitectura central deben colaborar para diseñar nuevas arquitecturas de referencia. Puedes compartir las arquitecturas de referencia en toda la organización para fomentar el intercambio de conocimientos y expandir el repositorio de soluciones disponibles. Este enfoque garantiza la coherencia, acelera el desarrollo, simplifica la toma de decisiones y promueve el uso eficiente de los recursos.

Revisa las arquitecturas de referencia que proporciona Google para varios casos de uso y tecnologías. Estas arquitecturas de referencia incorporan prácticas recomendadas para la selección, el tamaño, la configuración y la implementación de recursos. Con el uso de estas arquitecturas de referencia, puedes acelerar tu proceso de desarrollo y lograr ahorros de costos desde el principio.

Aplicar disciplina de costos con políticas de la organización

Considera usar las políticas de la organización para limitar las ubicaciones y los productos de Google Cloud disponibles que pueden usar los miembros del equipo. Estas políticas ayudan a garantizar que los equipos sigan soluciones rentables y aprovisionen recursos en ubicaciones que estén alineadas con tus objetivos de optimización de costos.

Estimar presupuestos realistas y establecer límites financieros

Desarrolla presupuestos detallados para cada proyecto, carga de trabajo y entorno de implementación. Asegúrate de que los presupuestos incluyan todos los aspectos de las operaciones en la nube, incluidos los costos de infraestructura, las licencias de software, el personal y el crecimiento previsto. Para evitar el exceso de gastos y garantizar la alineación con tus objetivos financieros, establece límites o umbrales de gasto claros para proyectos, servicios o recursos específicos. Supervisa la inversión en la nube con regularidad en función de estos límites. Puedes usar las alertas de cuota proactivas para identificar posibles excesos de costos con anticipación y tomar medidas correctivas a tiempo.

Además de establecer presupuestos, puedes usar cuotas y límites para ayudar a aplicar la disciplina de costos y evitar aumentos repentinos inesperados en los gastos. Puedes ejercer un control detallado sobre el consumo de recursos si estableces cuotas en varios niveles, incluidos proyectos, servicios y hasta tipos de recursos específicos.

A continuación, se muestran ejemplos de cómo puedes implementar esta recomendación:

  • Cuotas a nivel del proyecto: Establece límites de inversión o cuotas de recursos a nivel del proyecto para establecer límites financieros generales y controlar el consumo de recursos en todos los servicios del proyecto.
  • Cuotas específicas del servicio: Configura cuotas para servicios específicos de Google Cloud, como Compute Engine o BigQuery, para limitar la cantidad de instancias, CPUs o capacidad de almacenamiento que se pueden aprovisionar.
  • Cuotas específicas del tipo de recurso: Aplica cuotas a tipos de recursos individuales, como VMs de Compute Engine, buckets de Cloud Storage, instancias de Cloud Run o nodos de GKE para restringir su uso y evitar sobrecostos inesperados.
  • Alertas de cuota: Recibe notificaciones cuando el uso de tu cuota (a nivel del proyecto) alcance un porcentaje del valor máximo.

Si usas cuotas y límites junto con la elaboración de presupuestos y la supervisión, puedes crear un enfoque proactivo y de varias capas para el control de costos. Este enfoque ayuda a garantizar que tu inversión en la nube se mantenga dentro de límites definidos y se alinee con tus objetivos comerciales. Recuerda que estos controles de costos no son rígidos ni permanentes. Para garantizar que los controles de costos sigan alineados con los estándares actuales de la industria y reflejen las necesidades cambiantes de tu empresa, debes revisarlos con regularidad y ajustarlos para incluir nuevas tecnologías y prácticas recomendadas.