Optimiza el uso de recursos para la sustentabilidad

Last reviewed 2026-01-28 UTC

Este principio del pilar de sustentabilidad del Google Cloud framework de Well-Architected proporciona recomendaciones para ayudarte a optimizar el uso de recursos de tus cargas de trabajo en Google Cloud.

Descripción general del principio

Optimizar el uso de recursos es fundamental para mejorar la sustentabilidad de tu entorno de nube. Cada recurso aprovisionado, desde los ciclos de procesamiento hasta el almacenamiento de datos, afecta directamente el uso de energía, la intensidad del agua y las emisiones de carbono. Para reducir la huella ambiental de tus cargas de trabajo, debes tomar decisiones fundamentadas cuando aprovisiones, administres y uses recursos de la nube.

Recomendaciones

Para optimizar el uso de recursos, considera las recomendaciones de las siguientes secciones.

Implementa el ajuste de escala automático y dinámico

El ajuste de escala dinámico y automatizado garantiza que el uso de recursos sea óptimo, lo que ayuda a evitar el desperdicio de energía de la infraestructura inactiva o con exceso de aprovisionamiento. La reducción del desperdicio de energía se traduce en costos y emisiones de carbono más bajos.

Usa las siguientes técnicas para implementar la escalabilidad dinámica y automática.

Usa el escalamiento horizontal

El escalamiento horizontal es la técnica de escalamiento preferida para la mayoría de las aplicaciones que priorizan la nube. En lugar de aumentar el tamaño de cada instancia, lo que se conoce como escalamiento vertical, agregas instancias para distribuir la carga. Por ejemplo, puedes usar grupos de instancias administrados (MIG) para escalar horizontalmente de forma automática un grupo de VMs de Compute Engine. La infraestructura escalada horizontalmente es más resiliente porque la falla de una instancia no afecta la disponibilidad de la aplicación. El escalamiento horizontal también es una técnica eficiente en cuanto a recursos para las aplicaciones que tienen niveles de carga variables.

Configura políticas de ajuste de escala adecuadas

Configura los parámetros del ajuste de escala automático según los requisitos de tus cargas de trabajo. Define métricas y umbrales personalizados que sean específicos del comportamiento de la aplicación. En lugar de depender únicamente del uso de la CPU, considera métricas como la profundidad de la cola para las tareas asíncronas, la latencia de las solicitudes y las métricas personalizadas de la aplicación. Para evitar el ajuste de escala frecuente e innecesario o el aleteo, define políticas de ajuste de escala claras. Por ejemplo, para las cargas de trabajo que implementas en Google Kubernetes Engine (GKE), configura una política de ajuste automático de escala del clúster adecuada.

Combina el ajuste de escala reactivo y proactivo

Con el ajuste de escala reactivo, el sistema se ajusta en respuesta a los cambios de carga en tiempo real. Esta técnica es adecuada para las aplicaciones que tienen picos de carga impredecibles.

El ajuste de escala proactivo es adecuado para cargas de trabajo con patrones predecibles, como horarios comerciales diarios fijos y generación de informes semanales. Para esas cargas de trabajo, usa el ajuste de escala automático programado para aprovisionar recursos previamente, de modo que puedan controlar un nivel de carga anticipado. Esta técnica evita la lucha por los recursos y garantiza una experiencia del usuario más fluida y eficiente. Esta técnica también te ayuda a planificar de forma proactiva los aumentos conocidos en la carga, como los eventos de ventas importantes y las iniciativas de marketing enfocadas.

Google Cloud Los servicios y las funciones administrados, como GKE Autopilot, Cloud Run y los MIG, administran automáticamente el escalamiento proactivo aprendiendo de tus patrones de carga de trabajo. De forma predeterminada, cuando un servicio de Cloud Run no recibe tráfico, se reduce a cero instancias.

Diseña aplicaciones sin estado

Para que una aplicación se escale horizontalmente, sus componentes deben carecer de estado. Esto significa que la sesión o los datos de un usuario específico no están vinculados a una sola instancia de procesamiento. Cuando almacenas el estado de la sesión fuera de la instancia de procesamiento, por ejemplo, en Memorystore para Redis, cualquier instancia de procesamiento puede controlar las solicitudes de cualquier usuario. Este enfoque de diseño permite un escalamiento horizontal eficiente y sin inconvenientes.

Usa la programación y los lotes

El procesamiento por lotes es ideal para cargas de trabajo a gran escala y no urgentes. Los trabajos por lotes pueden ayudarte a optimizar tus cargas de trabajo en términos de eficiencia energética y costos.

Usa las siguientes técnicas para implementar trabajos por lotes y de programación.

Programación para una baja intensidad de carbono

Programa tus trabajos por lotes para que se ejecuten en regiones con bajas emisiones de carbono y durante los períodos en los que la red eléctrica local tenga un alto porcentaje de energía limpia. Para identificar los momentos del día con menor intensidad de carbono en una región, usa el informe de Huella de carbono.

Usa VMs Spot para cargas de trabajo no críticas

Las VMs Spot te permiten aprovechar la capacidad sin usar de Compute Engine con un gran descuento. Las VMs Spot se pueden interrumpir, pero proporcionan una forma rentable de procesar grandes conjuntos de datos sin necesidad de recursos dedicados y siempre activos. Las VMs Spot son ideales para trabajos por lotes no críticos y tolerantes a errores.

Consolida y paraleliza los trabajos

Para reducir la sobrecarga de iniciar y detener trabajos individuales, agrupa los trabajos similares en un solo lote grande. Ejecuta estas cargas de trabajo de gran volumen en servicios como Batch. El servicio aprovisiona y administra automáticamente la infraestructura necesaria, lo que ayuda a garantizar un uso óptimo de los recursos.

Usa servicios administrados

Los servicios administrados, como Batch y Dataflow, controlan automáticamente el aprovisionamiento, la programación y la supervisión de recursos. La plataforma en la nube se encarga de la optimización de recursos. Puedes enfocarte en la lógica de la aplicación. Por ejemplo, Dataflow ajusta automáticamente la cantidad de trabajadores según el volumen de datos en la canalización, por lo que no pagas por los recursos inactivos.

Cómo hacer coincidir las familias de máquinas de VM con los requisitos de la carga de trabajo

Los tipos de máquinas que puedes usar para tus VMs de Compute Engine se agrupan en familias de máquinas, que se optimizan para diferentes cargas de trabajo. Elige las familias de máquinas adecuadas según los requisitos de tus cargas de trabajo.

Familia de máquinas Tipos de cargas de trabajo recomendadas Orientación sobre sustentabilidad
Instancias de uso general (E2, N2, N4, Tau T2A/T2D): Estas instancias proporcionan una proporción equilibrada de CPU a memoria. Servidores web, microservicios, bases de datos pequeñas a medianas y entornos de desarrollo La serie E2 es muy rentable y eficiente en el uso de energía debido a su asignación dinámica de recursos. La serie Tau T2A usa procesadores basados en Arm, que suelen ser más eficientes en cuanto al consumo de energía por unidad de rendimiento para cargas de trabajo a gran escala.
Instancias optimizadas para procesamiento (C2 y C3): Estas instancias proporcionan una alta proporción de CPU virtuales por unidad de memoria y un alto rendimiento por núcleo. Computación de alto rendimiento (HPC), procesamiento por lotes, servidores de juegos y análisis de datos basados en CPU Una instancia de la serie C te permite completar tareas que requieren un uso intensivo de la CPU más rápido, lo que reduce el tiempo total de procesamiento y el consumo de energía del trabajo.
Instancias con optimización de memoria (M3 y M2): Estas instancias están diseñadas para cargas de trabajo que requieren una gran cantidad de memoria. Bases de datos y almacenes de datos en memoria grandes, como SAP HANA o análisis en memoria Las instancias con optimización de memoria permiten consolidar cargas de trabajo que requieren mucha memoria en menos nodos físicos. Esta consolidación reduce la energía total que se requiere en comparación con el uso de varias instancias más pequeñas. La memoria de alto rendimiento reduce la latencia de acceso a los datos, lo que puede reducir el tiempo total que la CPU pasa en un estado activo.
Instancias optimizadas para almacenamiento (Z3): Estas instancias proporcionan almacenamiento SSD local de alta capacidad de procesamiento y baja latencia. Almacenamiento de datos, análisis de registros y bases de datos SQL, NoSQL y vectoriales Las instancias optimizadas para el almacenamiento procesan conjuntos de datos masivos de forma local, lo que ayuda a eliminar la energía que se usa para la transferencia de datos de red entre ubicaciones. Cuando usas almacenamiento local para tareas con una gran cantidad de IOPS, evitas el aprovisionamiento excesivo de varias instancias estándar.
Instancias optimizadas para aceleradores (A3, A2 y G2): Estas instancias se compilan para cargas de trabajo aceleradas por GPU y TPU, como IA, AA y HPC. Entrenamiento e inferencia de modelos de AA, y simulaciones científicas

Las TPU están diseñadas para ofrecer una eficiencia energética óptima. Ofrecen más cálculos por vatio.

Una instancia acelerada por GPU, como la serie A3 con GPU NVIDIA H100, puede ser mucho más eficiente en términos de energía para entrenar modelos grandes que una alternativa solo con CPU. Si bien una instancia acelerada por GPU tiene un consumo de energía nominal más alto, la tarea se completa mucho más rápido.

Actualiza a los tipos de máquinas más recientes

El uso de los tipos de máquinas más recientes puede ayudar a mejorar la sustentabilidad. Cuando se actualizan los tipos de máquinas, a menudo se diseñan para que sean más eficientes en el consumo de energía y proporcionen un mayor rendimiento por vatio. Las VMs que usan los tipos de máquinas más recientes pueden completar la misma cantidad de trabajo con un menor consumo de energía.

Las CPU, las GPU y las TPU suelen beneficiarse de los avances técnicos en la arquitectura de los chips, como los siguientes:

  • Núcleos especializados: Los avances en los procesadores suelen incluir núcleos o instrucciones especializados para cargas de trabajo comunes. Por ejemplo, las CPUs pueden tener núcleos dedicados para operaciones vectoriales o aceleradores de IA integrados. Cuando estas tareas se descargan de la CPU principal, se completan de manera más eficiente y consumen menos energía.
  • Administración de energía mejorada: Los avances en las arquitecturas de chips suelen incluir funciones de administración de energía más sofisticadas, como el ajuste dinámico del voltaje y la frecuencia según la carga de trabajo. Estas funciones de administración de energía permiten que los chips funcionen con la máxima eficiencia y entren en estados de bajo consumo cuando están inactivos, lo que minimiza el consumo de energía.

Las mejoras técnicas en la arquitectura del chip proporcionan los siguientes beneficios directos para la sustentabilidad y el costo:

  • Mayor rendimiento por vatio: Esta es una métrica clave para la sustentabilidad. Por ejemplo, las VMs C4 demuestran un 40% más de rendimiento en relación con el precio en comparación con las VMs C3 para el mismo consumo de energía. El procesador C4A proporciona un 60% más de eficiencia energética que los procesadores x86 comparables. Estas capacidades de rendimiento te permiten completar tareas más rápido o usar menos instancias para la misma carga.
  • Menor consumo total de energía: Con los procesadores mejorados, los recursos de procesamiento se utilizan durante un período más corto para una tarea determinada, lo que reduce el consumo general de energía y la huella de carbono. El impacto de carbono es particularmente alto para las cargas de trabajo de corta duración y con uso intensivo de procesamiento, como los trabajos por lotes y el entrenamiento de modelos de AA.
  • Uso óptimo de los recursos: Los tipos de máquinas más recientes suelen ser más adecuados para el software moderno y más compatibles con las funciones avanzadas de las plataformas en la nube. Por lo general, estos tipos de máquinas permiten una mejor utilización de los recursos, lo que reduce la necesidad de un aprovisionamiento excesivo y ayuda a garantizar que cada vatio de energía se use de manera productiva.

Implementa aplicaciones en contenedores

Puedes usar servicios completamente administrados basados en contenedores, como GKE y Cloud Run, como parte de tu estrategia para la computación en la nube sostenible. Estos servicios ayudan a optimizar el uso de los recursos y automatizar la administración de recursos.

Aprovecha la capacidad de escalar a cero de Cloud Run

Cloud Run proporciona un entorno sin servidores administrado que escala automáticamente las instancias a cero cuando no hay tráfico entrante para un servicio o cuando se completa un trabajo. El ajuste de escala automático ayuda a eliminar el consumo de energía de la infraestructura inactiva. Los recursos solo se activan cuando procesan solicitudes de forma activa. Esta estrategia es muy eficaz para las cargas de trabajo intermitentes o controladas por eventos. Para las cargas de trabajo de IA, puedes usar GPUs con Cloud Run, que te permite consumir y pagar por las GPUs solo cuando se usan.

Automatiza la optimización de recursos con GKE

GKE es una plataforma de organización de contenedores que garantiza que las aplicaciones usen solo los recursos que necesitan. Para ayudarte a automatizar la optimización de recursos, GKE proporciona las siguientes técnicas:

  • Compresión: GKE Autopilot comprime de forma inteligente varios contenedores en los nodos disponibles. El empaquetamiento de contenedores maximiza el uso de cada nodo y reduce la cantidad de nodos inactivos o subutilizados, lo que ayuda a reducir el consumo de energía.
  • Ajuste de escala automático horizontal de Pods (HPA): Con el HPA, la cantidad de réplicas de contenedores (Pods) se ajusta automáticamente en función de métricas predefinidas, como el uso de CPU o métricas personalizadas específicas de la aplicación. Por ejemplo, si tu aplicación experimenta un aumento repentino en el tráfico, GKE agrega Pods para satisfacer la demanda. Cuando el tráfico disminuye, GKE reduce la cantidad de Pods. Este ajuste de escala dinámico evita el aprovisionamiento excesivo de recursos, por lo que no pagas ni enciendes capacidad de procesamiento innecesaria.
  • Ajuste de escala automático vertical de Pods (VPA): Puedes configurar GKE para que ajuste automáticamente las asignaciones y los límites de CPU y memoria para contenedores individuales. Esta configuración garantiza que no se asignen más recursos de los necesarios a un contenedor, lo que ayuda a evitar el aprovisionamiento excesivo de recursos.
  • Ajuste de escala automático multidimensional de Pods en GKE: En el caso de cargas de trabajo complejas, puedes configurar HPA y VPA de forma simultánea para optimizar la cantidad de Pods y el tamaño de cada Pod. Esta técnica ayuda a garantizar la menor huella de energía posible para el rendimiento requerido.
  • Programación basada en la topología (TAS): TAS mejora la eficiencia de la red para las cargas de trabajo de IA y AA en GKE colocando Pods según la estructura física de la infraestructura del centro de datos. TAS coloca estratégicamente las cargas de trabajo para minimizar los saltos de red. Esta ubicación conjunta ayuda a reducir la latencia de comunicación y el consumo de energía. Al optimizar la alineación física de los nodos y el hardware especializado, TAS acelera la finalización de las tareas y maximiza la eficiencia energética de las cargas de trabajo de IA y AA a gran escala.

Configura la programación que tiene en cuenta las emisiones de carbono

En Google, trasladamos continuamente nuestras cargas de trabajo a ubicaciones y horarios que proporcionan la electricidad más limpia. También reutilizamos o aprovechamos equipos más antiguos para casos de uso alternativos. Puedes usar esta estrategia de programación que tiene en cuenta las emisiones de carbono para garantizar que tus cargas de trabajo en contenedores usen energía limpia.

Para implementar la programación que tiene en cuenta las emisiones de carbono, necesitas información sobre la combinación de fuentes de energía que alimentan los centros de datos de una región en tiempo real. Puedes obtener esta información en un formato legible por máquina desde el repositorio Carbon free energy for Google Cloud regions en GitHub o desde un conjunto de datos públicos de BigQuery. Los datos de intensidad de carbono y de combinación de red por hora que se usan para calcular el conjunto de datos anuales de carbono de Google provienen de Electricity Maps.

Para implementar la programación que tiene en cuenta las emisiones de carbono, te recomendamos las siguientes técnicas:

  • Cambio geográfico: Programa tus cargas de trabajo para que se ejecuten en regiones que usan una mayor proporción de fuentes de energía renovable. Este enfoque te permite usar redes eléctricas más limpias.
  • Desplazamiento temporal: Para las cargas de trabajo flexibles y no críticas, como el procesamiento por lotes, configura las cargas de trabajo para que se ejecuten durante las horas no pico o cuando la energía renovable sea más abundante. Este enfoque se conoce como desplazamiento temporal y ayuda a reducir la huella de carbono general, ya que aprovecha las fuentes de energía más limpias cuando están disponibles.

Diseña una recuperación ante desastres con eficiencia energética

La preparación para la recuperación ante desastres (DR) suele implicar el aprovisionamiento previo de recursos redundantes en una región secundaria. Sin embargo, los recursos inactivos o infrautilizados pueden causar un desperdicio significativo de energía. Elige estrategias de DR que maximicen el uso de recursos y minimicen el impacto de carbono sin comprometer tus objetivos de tiempo de recuperación (RTO).

Optimiza la eficiencia del inicio en frío

Usa los siguientes enfoques para minimizar o eliminar los recursos activos en tu región secundaria (DR):

  • Prioriza el DR en frío: Mantén los recursos de la región de DR apagados o en un estado de reducción a cero. Este enfoque ayuda a eliminar la huella de carbono de los recursos de procesamiento inactivos.
  • Aprovecha la conmutación por error sin servidores: Usa servicios administrados sin servidores, como Cloud Run, para los extremos de DR. Cloud Run se ajusta a cero cuando no está en uso, por lo que puedes mantener una topología de DR que no consuma energía hasta que el tráfico se desvíe a la región de DR.
  • Automatiza la recuperación con infraestructura como código (IaC): En lugar de mantener los recursos en el sitio de DR en ejecución (cálido), usa una herramienta de IaC, como Terraform, para aprovisionar rápidamente los entornos solo cuando sea necesario.

Equilibra la redundancia y la utilización

La redundancia de recursos es uno de los principales factores que generan desperdicio de energía. Para reducir la redundancia, usa los siguientes enfoques:

  • Prefiere la configuración activa-activa a la activa-pasiva: En una configuración activa-pasiva, los recursos del sitio pasivo están inactivos, lo que genera un desperdicio de energía. Una arquitectura activa/activa con un tamaño óptimo garantiza que todos los recursos aprovisionados en ambas regiones atiendan el tráfico de forma activa. Este enfoque te ayuda a maximizar la eficiencia energética de tu infraestructura.
  • Redundancia del tamaño adecuado: Replica los datos y los servicios en las regiones solo cuando la replicación sea necesaria para cumplir con los requisitos de alta disponibilidad o DR. Cada réplica adicional aumenta el costo de energía del almacenamiento persistente y la salida de red.