Optimiza el uso de recursos

Este principio del pilar de optimización de costos del Google Cloud Framework de Well-Architected proporciona recomendaciones para ayudarte a planificar y aprovisionar recursos que satisfagan los requisitos y los patrones de consumo de tus cargas de trabajo en la nube.

Descripción general del principio

Para optimizar el costo de tus recursos en la nube, debes comprender a fondo los requisitos de recursos y los patrones de carga de tus cargas de trabajo. Este conocimiento es la base de un modelo de costos bien definido que te permite prever el costo total de propiedad (TCO) e identificar los factores que generan costos a lo largo de tu proceso de adopción de la nube. Si analizas y prevés de forma proactiva la inversión en la nube, podrás tomar decisiones fundamentadas sobre el aprovisionamiento, la utilización y la optimización de costos de los recursos. 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 los recursos de la nube, considera las siguientes recomendaciones.

Elige recursos específicos del entorno

Cada entorno de implementación tiene diferentes requisitos de disponibilidad, confiabilidad y escalabilidad. Por ejemplo, los desarrolladores podrían preferir un entorno que les permita implementar y ejecutar aplicaciones rápidamente durante períodos cortos, pero tal vez 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 los de almacenamiento temporal y 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 opciones 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 la carga 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 con ajuste de escala automático Recursos con funciones básicas y recursos efímeros, como las VMs Spot.
Basada en eventos Escalamiento dinámico basado en la demanda actual de capacidad y rendimiento Servicios sin servidores, como Cloud Run y Cloud Run Functions.
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 VMs 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, mientras que otras no se diseñan de esta manera. Realiza pruebas comparativas y crea perfiles de tus cargas de trabajo según corresponda. Categoriza tus cargas de trabajo y toma decisiones sobre los recursos específicos para cada carga de trabajo (por ejemplo, elige 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 incluyen ejemplos de cómo puedes implementar esta recomendación:

  • Para las cargas de trabajo fundamentales que atienden a usuarios distribuidos a nivel mundial, 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 no incurrir en costos cuando la carga sea baja y, al mismo tiempo, mantener la capacidad suficiente para satisfacer la carga actual. Puedes configurar el ajuste de escala automático para muchosGoogle Cloud servicios, incluidas las VM de Compute Engine, los clústeres de Google Kubernetes Engine (GKE) y Cloud Run. Cuando configuras el ajuste automático de escala, puedes establecer límites máximos de ajuste para garantizar que los costos permanezcan dentro de los presupuestos especificados.

Selecciona regiones según los requisitos de costos

Para tus cargas de trabajo en la nube, evalúa cuidadosamente las regiones Google Clouddisponibles y elige las 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 sustentabilidad. Toma decisiones fundamentadas sobre dónde implementar tus cargas de trabajo para lograr el equilibrio deseado. Puedes usar el Google Cloud Selector de regiones para comprender las compensaciones entre el costo, la sustentabilidad, la latencia y otros factores.

Usa las opciones integradas de optimización de costos

Los productos deGoogle Cloud proporcionan funciones integradas para ayudarte a optimizar el uso de recursos y controlar los costos. En la siguiente tabla, se enumeran 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
  • Realiza automáticamente la transición de los datos a clases de almacenamiento de menor costo según la antigüedad de los datos o los patrones de acceso con la Administración del ciclo de vida de los objetos.
  • Mueve datos de forma dinámica a la clase de almacenamiento más rentable según los patrones de uso con Autoclass.
BigQuery
  • Reduce los costos de procesamiento de consultas para las cargas de trabajo en estado estable con los precios basados en la capacidad.
  • Optimiza el rendimiento y los costos de las consultas con técnicas de partición y agrupamiento en clústeres.
Google Cloud VMware Engine

Optimiza 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 los requisitos de 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 incluyen 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 la flota en GKE con los controles de acceso adecuados.
  • Usa GKE Autopilot para aprovechar las técnicas de optimización de costos, como el empaquetado de contenedores y el ajuste de escala automático, que GKE implementa de forma predeterminada.
  • Para las cargas de trabajo de IA y AA, ahorra costos de GPU con estrategias de uso compartido de GPU, como las GPU de varias instancias, las GPU de uso compartido de tiempo y NVIDIA MPS.

Desarrollar y mantener arquitecturas de referencia

Crea y mantén un repositorio de arquitecturas de referencia que se adapten a los requisitos de diferentes entornos de implementación y tipos de cargas de trabajo. Para optimizar el proceso de diseño y la implementación de proyectos individuales, un equipo como un Centro de excelencia en la nube (CCoE) puede administrar los planos de forma centralizada. Los equipos de proyectos pueden elegir planos adecuados según 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 central de arquitectura 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 diversos casos de uso y tecnologías. Estas arquitecturas de referencia incorporan prácticas recomendadas para la selección, el dimensionamiento, la configuración y la implementación de recursos. Con estas arquitecturas de referencia, puedes acelerar tu proceso de desarrollo y ahorrar costos desde el principio.

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

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

Estima presupuestos realistas y establece límites financieros

Desarrollar presupuestos detallados para cada proyecto, carga de trabajo y entorno de implementación Asegúrate de que los presupuestos cubran 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 gastos excesivos 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 periódicamente los gastos en la nube en relación con estos límites. Puedes usar las alertas de cuota proactivas para identificar posibles excesos de costos de forma anticipada y tomar medidas correctivas oportunas.

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

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

  • Cuotas a nivel del proyecto: Establece límites de gasto 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, CPU 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 aumentos inesperados de costos.
  • Alertas de cuota: Recibe notificaciones cuando el uso de la cuota (a nivel del proyecto) alcance un porcentaje del valor máximo.

Si usas cuotas y límites junto con la supervisión y la elaboración de presupuestos, puedes crear un enfoque proactivo y de varias capas para controlar los costos. Este enfoque ayuda a garantizar que tus gastos en la nube permanezcan dentro de los límites definidos y se alineen con tus objetivos comerciales. Recuerda que estos controles de costos no son permanentes ni rígidos. 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 periódicamente y ajustarlos para incluir nuevas tecnologías y prácticas recomendadas.