¿Qué es la elasticidad de la nube?

La elasticidad de la nube es la capacidad de un sistema en la nube para modificar automáticamente sus recursos de computación y adaptarlos a una carga de trabajo cambiante. También se conoce como "computación elástica". Funciona como una goma elástica: se puede estirar para gestionar más trabajo y luego volver a su forma original cuando el trabajo está terminado. Esto implica que no tienes que adivinar cuánta capacidad vas a necesitar con antelación. En vez de eso, tu servicio en la nube te proporciona automáticamente más potencia de procesamiento, memoria o almacenamiento cuando hay un pico de tráfico y, después, lo reduce cuando las cosas se calman. Esto puede ayudar a las empresas a ahorrar dinero, ya que solo pagan por los recursos que utilizan.

Información sobre la computación elástica

La elasticidad de la nube es una ventaja clave del cloud computing que permite que la infraestructura en la nube de una empresa aumente o disminuya sus recursos automáticamente en función de la demanda. Consiste principalmente en adaptarse a los cambios impredecibles en la carga de trabajo sin ayuda humana.

Por ejemplo, un sitio web de comercio electrónico puede experimentar un gran aumento del tráfico en un momento puntual como el Black Friday. Con la computación elástica, el sitio web obtiene automáticamente más servidores para gestionar ese pico de tráfico y garantizar que los clientes disfruten de una experiencia de compra fluida. Una vez que termina el periodo festivo, el sistema reduce los recursos a los niveles normales.

Tipos de elasticidad de la nube

Hay dos formas principales en las que un sistema puede usar la elasticidad: horizontal y vertical.

Esto también se conoce como "escalado horizontal" o "escalado horizontalmente descendente". Implica añadir o quitar más máquinas o instancias en tu sistema. Cuando necesitas más capacidad, añades más servidores. Cuando necesitas menos, te deshaces de ellos. Es habitual en aplicaciones que se pueden dividir y ejecutar en varios servidores a la vez.

Esto también se conoce como "escalar verticalmente" o "reducir verticalmente", lo que implica aumentar o disminuir los recursos de una máquina concreta. Por ejemplo, si necesitas más potencia para un servidor específico, le asignarías más CPU, memoria o almacenamiento. Cuando ya no la necesites, podrás reducir esos recursos.

Diferencia entre elasticidad y escalabilidad de la nube

Aunque los términos "elasticidad" y "escalabilidad" se suelen usar juntos, hacen referencia a cosas diferentes.

  • La escalabilidad de la nube es la capacidad de un sistema para gestionar una mayor carga de trabajo a lo largo del tiempo añadiendo más recursos. Es una estrategia de crecimiento planificada a largo plazo. Por ejemplo, una empresa puede saber que cada año tendrá más usuarios, por lo que planifica la incorporación de más servidores en su centro de datos.
  • La elasticidad de la nube es la capacidad de un sistema para adaptarse a cambios repentinos e impredecibles en la demanda en tiempo real. Es un proceso automático y reactivo que se centra en la eficiencia y el ahorro de costes.

Piensa en la escalabilidad como si te prepararas para una maratón entrenando durante meses. Por su parte, la elasticidad sería como un corredor que puede acelerar o reducir el ritmo de manera inmediata durante la carrera para igualar el de los demás corredores.

Ventajas de usar la elasticidad de la nube

La computación elástica ofrece muchas ventajas potenciales a empresas y desarrolladores.

Rentabilidad

La computación elástica puede ayudarte a ahorrar dinero, ya que solo pagas por los recursos que utilizas. Cuando la demanda es baja, no tienes que mantener en funcionamiento servidores adicionales, lo que reduce gastos innecesarios. También te evitas comprar hardware costoso para gestionar picos de tráfico que solo necesitarías unas cuantas veces al año.

Servicio de alta disponibilidad y fiabilidad

Al ajustar los recursos automáticamente, la computación elástica puede ayudar a garantizar que tu aplicación siga estando disponible y respondiendo incluso cuando hay picos de tráfico inesperados. De esta forma, se pueden evitar ralentizaciones o fallos que podrían frustrar a los usuarios o dañar la reputación de tu empresa.

Mejora del rendimiento

El sistema añade recursos automáticamente cuando es necesario, lo que puede ayudar a mantener tiempos de respuesta rápidos y una experiencia de usuario fluida. Esto es especialmente importante para las aplicaciones con cargas de trabajo impredecibles, como las de videojuegos online, servicios de streaming o comercio electrónico.

Gestión simplificada

Como el proceso de escalado es automático, los desarrolladores y los equipos de TI no tienen que monitorizar ni ajustar los recursos manualmente. De esta forma, se puede ahorrar tiempo y esfuerzo para dedicarlos a otras tareas importantes, como desarrollar nuevas funciones o mejorar la experiencia de usuario.

Computación elástica para desarrolladores de entornos empresariales

Para los desarrolladores de entornos empresariales, la computación elástica no es solo una función, sino una estrategia importante que puede ayudar a crear aplicaciones resilientes, rentables y de alto rendimiento. Se trata de diseñar sistemas que puedan adaptarse de forma inteligente a cargas de trabajo impredecibles, evitando tanto el sobreaprovisionamiento como el infraaprovisionamiento. Esto es especialmente importante para las aplicaciones esenciales que deben estar disponibles las 24 horas del día, como las plataformas de comercio electrónico, los servicios financieros o los flujos de procesamiento de datos.

Crear sistemas elásticos con Compute Engine

La elasticidad de la nube es el principio fundamental que rige el funcionamiento de los grupos de instancias gestionados (MIGs) de Compute Engine. En lugar de aprovisionar manualmente las máquinas virtuales para gestionar el tráfico, puedes diseñar un sistema que se adapte automáticamente a los cambios en la demanda. Un MIG es un grupo de máquinas virtuales idénticas que puedes gestionar como una sola entidad, y es la herramienta principal para crear un sistema elástico en Compute Engine. El MIG usa una herramienta de adaptación dinámica que añade o quita automáticamente máquinas virtuales del grupo en función de métricas predefinidas, lo que le permite conseguir elasticidad.

A continuación, te explicamos cómo puede aplicar un desarrollador empresarial estos conceptos en la práctica para crear un sistema escalable:

Crear un proyecto de VM: una plantilla de instancia

Para crear un sistema elástico, necesitas una plantilla de instancia. Esta plantilla constituye la referencia central de donde extraer los datos para configurar las máquinas virtuales de tu aplicación, incluido el tipo de máquina, el disco de arranque y cualquier secuencia de comandos de inicio necesaria. De esta forma, cada nueva máquina virtual es una réplica exacta de la anterior, lo que fomenta la coherencia y simplifica las implementaciones.

Configurar el grupo de instancias gestionado

Ve a la página "Grupos de instancias" en la consola de Google Cloud y crea un grupo de instancias gestionado. Selecciona la plantilla de instancia que has creado, define un número mínimo y máximo de instancias y elige las zonas de tu grupo para garantizar la redundancia y la alta disponibilidad.

Implementar reglas de autoescalado

Esta es la esencia de la elasticidad de la nube. En lugar de un simple escalado basado en la CPU, los desarrolladores empresariales pueden implementar reglas de autoescalado avanzadas según métricas de Cloud Monitoring (como la longitud de una cola para un servicio de trabajador de backend) o usar el autoescalado predictivo, que parte de datos históricos para reactivar nuevas máquinas virtuales antes de que se espere un pico de tráfico.

Añadir un balanceador de carga

En cualquier aplicación orientada al público, un balanceador de carga es esencial para distribuir el tráfico de usuarios entrante entre todas las máquinas virtuales de tu grupo de instancias gestionado. De esta forma, ninguna máquina virtual se sobrecarga y tu aplicación sigue teniendo una alta disponibilidad.

Crear un proyecto de VM: una plantilla de instancia

Para crear un sistema elástico, necesitas una plantilla de instancia. Esta plantilla constituye la referencia central de donde extraer los datos para configurar las máquinas virtuales de tu aplicación, incluido el tipo de máquina, el disco de arranque y cualquier secuencia de comandos de inicio necesaria. De esta forma, cada nueva máquina virtual es una réplica exacta de la anterior, lo que fomenta la coherencia y simplifica las implementaciones.

Configurar el grupo de instancias gestionado

Ve a la página "Grupos de instancias" en la consola de Google Cloud y crea un grupo de instancias gestionado. Selecciona la plantilla de instancia que has creado, define un número mínimo y máximo de instancias y elige las zonas de tu grupo para garantizar la redundancia y la alta disponibilidad.

Implementar reglas de autoescalado

Esta es la esencia de la elasticidad de la nube. En lugar de un simple escalado basado en la CPU, los desarrolladores empresariales pueden implementar reglas de autoescalado avanzadas según métricas de Cloud Monitoring (como la longitud de una cola para un servicio de trabajador de backend) o usar el autoescalado predictivo, que parte de datos históricos para reactivar nuevas máquinas virtuales antes de que se espere un pico de tráfico.

Añadir un balanceador de carga

En cualquier aplicación orientada al público, un balanceador de carga es esencial para distribuir el tráfico de usuarios entrante entre todas las máquinas virtuales de tu grupo de instancias gestionado. De esta forma, ninguna máquina virtual se sobrecarga y tu aplicación sigue teniendo una alta disponibilidad.

Soluciona los retos empresariales que se te presenten con Google Cloud

Los nuevos clientes reciben 300 USD en crédito gratis para invertirlos en Google Cloud.

Recursos adicionales

Ve un paso más allá

Empieza a crear en Google Cloud con 300 USD en crédito gratis y más de 20 productos Always Free.

Google Cloud