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.
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.
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.
Aunque los términos "elasticidad" y "escalabilidad" se suelen usar juntos, hacen referencia a cosas diferentes.
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.
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.
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.
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.
Empieza a crear en Google Cloud con 300 USD en crédito gratis y más de 20 productos Always Free.