Optimiza el uso de recursos para la sustentabilidad

Last reviewed 2026-10-28 UTC

Este principio del pilar de sustentabilidad del Google Cloud Well-Architected Framework 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 que se aprovisiona, desde los ciclos de cómputo hasta el almacén de datos, afecta directamente el uso de energía, la intensidad del agua y las emisiones de carbono. Para reducir el impacto ambiental de tus cargas de trabajo, debes tomar decisiones fundamentadas cuando aprovisionas, administras y usas recursos de la nube.

Recomendaciones

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

Implementa el escalamiento automático y dinámico

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

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

Usa el escalamiento horizontal

El escalamiento horizontal es la técnica de escalamiento preferida para la mayoría de las aplicaciones centradas en 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 con escalamiento horizontal es más resiliente, ya que la falla de una instancia no afecta la disponibilidad de la aplicación. El escalamiento horizontal también es una técnica eficiente en términos de recursos para aplicaciones que tienen niveles de carga variables.

Configura políticas de escalamiento adecuadas

Configura los parámetros de 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 solo del uso de CPU, considera métricas como la profundidad de la cola para las tareas asíncronas, la latencia de las solicitudes y las métricas de aplicaciones personalizadas. Para evitar el escalamiento frecuente o innecesario, o el flapping, define políticas de escalamiento claras. Por ejemplo, para las cargas de trabajo que implementas en Google Kubernetes Engine (GKE), configura una política de escalado automático de clústeres adecuada.

Combina el escalamiento reactivo y proactivo

Con el escalamiento reactivo, el sistema escala en respuesta a los cambios de carga en tiempo real. Esta técnica es adecuada para aplicaciones que tienen aumentos repentinos impredecibles en la carga.

El escalamiento proactivo es adecuado para cargas de trabajo con patrones predecibles, como el horario de atención diario fijo y la generación de informes semanales. Para esas cargas de trabajo, usa el ajuste de escala automático programado para aprovisionar recursos con anticipación, de modo que puedan controlar un nivel de carga previsto. Esta técnica evita que se produzca una lucha por los recursos y garantiza una experiencia del usuario más fluida y con mayor eficiencia. Esta técnica también te ayuda a planificar de forma proactiva los aumentos repentinos de carga conocidos, como los eventos de ofertas importantes y las iniciativas de marketing enfocadas.

Los servicios y las funciones administrados deGoogle Cloud , 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 escala a cero instancias.

Diseña aplicaciones sin estado

Para que una aplicación se escale de forma horizontal, sus componentes deben ser sin 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, como en Memorystore para Redis, cualquier instancia de procesamiento puede controlar las solicitudes de cualquier usuario. Este enfoque de diseño permite un escalamiento horizontal sin interrupciones y eficiente.

Usa la programación y los lotes

El procesamiento por lotes es ideal para cargas de trabajo a gran escala que no son urgentes. Los trabajos por lotes pueden ayudar a optimizar tus cargas de trabajo para mejorar la eficiencia energética y los costos.

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

Programa la carga para momentos de 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 la 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 trabajos

Para reducir la sobrecarga que implica iniciar y cerrar 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 los recursos. La plataforma en la nube controla la optimización de recursos. Puedes enfocarte en la lógica de la aplicación. Por ejemplo, Dataflow escala de forma automática la cantidad de trabajadores según el volumen de datos en la canalización, por lo que no pagas por los recursos inactivos.

Hacer coincidir las familias de máquinas de VM con los requisitos de las cargas de trabajo

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

Familia de máquinas Recomendado para tipos de cargas de trabajo Orientación sobre sustentabilidad
Instancias de uso general: Estas instancias proporcionan una proporción equilibrada de CPU y memoria. Servidores web, microservicios, bases de datos pequeñas a medianas y entornos de desarrollo. La serie E2 es muy rentable y eficiente desde el punto de vista energético debido a su asignación dinámica de recursos. Las series C4A, N4A y Tau T2A usan procesadores basados en Arm, que suelen ser más eficientes desde el punto de vista energético por unidad de rendimiento para cargas de trabajo a gran escala.
Instancias optimizadas para procesamiento: Estas instancias proporcionan una alta proporción de CPU virtual a 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 optimizada para procesamiento te permite completar tareas que requieren un uso intensivo de la CPU con mayor rapidez, lo que reduce el tiempo de procesamiento total y el consumo de energía del trabajo.
Instancias con optimización de memoria: Estas instancias están diseñadas para cargas de trabajo que requieren una gran cantidad de memoria. Bases de datos en memoria y almacenes de datos grandes, como SAP HANA o análisis en memoria. Las instancias con optimización de memoria permiten consolidar las cargas de trabajo con uso intensivo de 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 el almacenamiento: 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 salida de datos de red entre ubicaciones. Cuando usas el almacenamiento local para tareas con IOPS altas, evitas aprovisionar en exceso varias instancias estándar.
Instancias optimizadas para aceleradores: 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 desde el punto de vista energético para entrenar modelos grandes que una alternativa que solo use CPU. Aunque una instancia acelerada por GPU tiene un uso 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, suelen diseñarse para que sean más eficientes desde el punto de vista energético 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 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 se ejecuten 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 de los chips 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 una relación precio-rendimiento un 40% más alta 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 de energía total: Con procesadores mejorados, los recursos de procesamiento se usan durante un período más corto para una tarea determinada, lo que reduce el uso general de energía y la huella de carbono. El impacto del carbono es especialmente alto para las cargas de trabajo de corta duración y de procesamiento intensivo, como los trabajos por lotes y el entrenamiento de modelos de AA.
  • Uso óptimo de recursos: Los tipos de máquinas más recientes suelen ser más adecuados para el software moderno y son más compatibles con las funciones avanzadas de las plataformas en la nube. Por lo general, estos tipos de máquinas permiten un mejor uso de los recursos, lo que reduce la necesidad de aprovisionamiento excesivo y ayuda a garantizar que cada vatio de energía se use de forma productiva.

Implementar aplicaciones alojadas 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 sustentable. Estos servicios ayudan a optimizar el uso de recursos y automatizar su administración.

Aprovechar la capacidad de reducción de escala a cero de Cloud Run

Cloud Run proporciona un entorno sin servidores administrado que escala de forma automática 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 se activan solo cuando procesan solicitudes de forma activa. Esta estrategia es muy eficaz para cargas de trabajo intermitentes o controladas por eventos. Para las cargas de trabajo de IA, puedes usar GPU con Cloud Run, lo que te permite consumir y pagar por las GPU 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:

  • Empaquetado en contenedores: GKE Autopilot empaqueta de forma inteligente varios contenedores en los nodos disponibles. El empaquetado en contenedores maximiza el uso de cada nodo y reduce la cantidad de nodos inactivos o poco utilizados, lo que ayuda a reducir el consumo de energía.
  • Escalado 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 escalamiento 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 de los contenedores individuales. Esta configuración garantiza que no se asignen más recursos de los que necesita un contenedor, lo que ayuda a evitar el aprovisionamiento excesivo de recursos.
  • Ajuste de escala automático multidimensional de Pods de GKE: Para cargas de trabajo complejas, puedes configurar el HPA y el VPA de forma simultánea para optimizar la cantidad de Pods y el tamaño de cada uno. Esta técnica ayuda a garantizar la menor huella energética posible para el rendimiento requerido.
  • Programación adaptada a la topología (TAS): La TAS mejora la eficiencia de la red para las cargas de trabajo de IA y AA en GKE, ya que coloca los Pods según la estructura física de la infraestructura del centro de datos. TAS ubica de forma estratégica 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. Cuando se optimiza 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 consciente de las emisiones de carbono

En Google, cambiamos continuamente nuestras cargas de trabajo a ubicaciones y horarios que proporcionan la electricidad más limpia. También reutilizamos, o recuperamos, equipos más antiguos para casos de uso alternativos. Puedes usar esta estrategia de programación consciente del carbono para asegurarte de que tus cargas de trabajo en contenedores usen energía limpia.

Para implementar la programación consciente de las emisiones de carbono, necesitas información sobre la combinación de energía que alimenta los centros de datos de una región en tiempo real. Puedes obtener esta información en un formato legible por máquinas en el repositorio Energía libre de carbono para las regiones de Google Cloud en GitHub o en un conjunto de datos públicos de BigQuery. Los datos de la combinación de red y la intensidad de carbono por hora que se usan para calcular el conjunto de datos de carbono anual de Google provienen de Electricity Maps.

Para implementar la programación consciente del carbono, te recomendamos las siguientes técnicas:

  • Cambio geográfico: Programa tus cargas de trabajo para que se ejecuten en regiones que usen una mayor proporción de fuentes de energía renovable. Este enfoque te permite usar redes eléctricas más limpias.
  • Cambio temporal: Para 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 de menor demanda o cuando la energía renovable sea más abundante. Este enfoque se conoce como cambio temporal y ayuda a reducir la huella de carbono general aprovechando fuentes de energía limpia 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 provocar un desperdicio de energía significativo. Elige estrategias de DR que maximicen el uso de recursos y minimicen el impacto del carbono sin comprometer tus objetivos de tiempo de recuperación (RTO).

Optimiza para mejorar 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 la DR en frío: Mantén los recursos de la región de DR desactivados o en un estado de reducción de escala 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 sin servidores administrados, como Cloud Run, para los extremos de DR. Cloud Run reduce la escala 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 la infraestructura como código (IaC): En lugar de mantener los recursos en el sitio de DR en ejecución (en espera), usa una herramienta de IaC, como Terraform, para aprovisionar entornos con rapidez solo cuando sea necesario.

Equilibra la redundancia y el uso

La redundancia de recursos es un factor principal del desperdicio de energía. Para reducir la redundancia, usa los siguientes enfoques:

  • Prefiere el modo activo-activo al activo-pasivo: 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 entreguen tráfico de forma activa. Este enfoque te ayuda a maximizar la eficiencia energética de tu infraestructura.
  • Redundancia de tamaño adecuado: Replica datos y servicios en 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 energético del almacenamiento persistente y la salida de red.