¿Qué es la escalabilidad de la nube?

La escalabilidad en la nube es la capacidad de un sistema de computación en la nube para aumentar o disminuir sus recursos, como la capacidad de procesamiento, el almacenamiento y el ancho de banda de la red, para satisfacer las demandas cambiantes. Puede ser un beneficio clave de la nube porque les permite a las empresas manejar aumentos o disminuciones en la carga de trabajo sin renovar toda su infraestructura. Esto significa que puedes ajustar fácilmente tus recursos a medida que crece tu empresa o que cambia el tráfico a tu aplicación, y pagar solo por lo que usas.

Escalabilidad versus elasticidad en la computación en la nube

Si bien a menudo se usan indistintamente, la escalabilidad y la elasticidad no son sinónimos. Ambos se relacionan con la capacidad de un sistema para abordar demandas cambiantes, pero lo hacen de diferentes maneras.

Escalabilidad

La escalabilidad alude a la capacidad de un sistema para manejar una cantidad creciente de trabajo agregando recursos con el paso del tiempo. A menudo, es un enfoque planificado a largo plazo para satisfacer el aumento en la demanda. Por ejemplo, una empresa podría planificar el escalamiento vertical de sus recursos de bases de datos como preparación para una campaña de marketing importante que atraerá a más usuarios. Es la capacidad de un sistema para expandirse y satisfacer el crecimiento futuro.

Elasticidad

La elasticidad es la capacidad de un sistema para ajustar los recursos de forma automática y rápida en tiempo real, en respuesta a los cambios inmediatos en la demanda. Imagina que es una banda elástica que se estira y se encoge. Por ejemplo, un sitio web de comercio electrónico podría diseñarse para que agregue automáticamente más servidores cuando haya un aumento repentino de tráfico durante festividades como el Black Friday y, luego, reducir la cantidad de servidores cuando el tráfico disminuya. La elasticidad se trata de ajustes dinámicos y a pedido para satisfacer la demanda actual, lo que puede ayudar a optimizar los costos y el rendimiento.

Tipos de escalabilidad en la computación en la nube

La escalabilidad en la nube se presenta principalmente de dos formas: escalamiento vertical y horizontal. El enfoque correcto depende de la arquitectura de las aplicaciones y de la naturaleza de las cargas de trabajo.

El escalamiento vertical es el proceso de agregar o quitar recursos de un solo servidor o máquina. Es como actualizar una sola computadora con un procesador más rápido o más RAM. El objetivo es hacer que la máquina sea más potente.

Cómo funciona el escalamiento vertical

Puedes escalar verticalmente aumentando la capacidad de una máquina virtual (VM) existente. Por ejemplo, si tu aplicación se ejecuta en una VM con una cierta cantidad de núcleos de CPU y una cantidad determinada de memoria, puedes escalar verticalmente eligiendo una VM más grande con más recursos. De manera similar, puedes reducir la escala verticalmente cambiándote a una VM más pequeña.

El escalamiento horizontal, también conocido como “escalar horizontalmente” o “reducir la escala”, implica aumentar la cantidad de máquinas o nodos en un sistema para distribuir la carga de trabajo de manera más eficaz. Es como agregar más computadoras a una red para compartir el trabajo. El objetivo es aumentar la capacidad usando varias máquinas en lugar de hacer que una sola máquina sea más potente.

Cómo funciona el escalamiento horizontal

El escalamiento horizontal implica ejecutar tu aplicación en varias VMs, y un balanceador de cargas distribuye el tráfico entrante entre las máquinas. A medida que aumenta la demanda, puedes agregar más VMs al grupo de forma automática o manual. Cuando la demanda disminuye, puedes quitarlas.

Escalamiento vertical versus horizontal: cómo elegir el enfoque correcto

La decisión entre el escalamiento vertical y horizontal depende de la arquitectura de tu aplicación y de tus necesidades comerciales.

Función

Escalamiento vertical

Escalamiento horizontal

Complejidad

Es más simple, ya que requiere una sola máquina.

Es más complejo, ya que requiere administrar varios nodos y un balanceador de cargas.

Tiempo de inactividad

Puede causar una breve interrupción del servicio durante las actualizaciones.

Por lo general, no hay tiempo de inactividad, ya que se agregan máquinas nuevas sin interrumpir las existentes.

Límite de escalabilidad

Limitado por la capacidad física de una sola máquina.

Casi ilimitada, ya que puedes agregar tantas máquinas como necesites.

Tolerancia a errores

Tiene un punto único de fallo, es decir, si la máquina deja de funcionar, la aplicación no está disponible.

Alta tolerancia a errores: si una máquina falla, las otras pueden seguir operando.

Función

Escalamiento vertical

Escalamiento horizontal

Complejidad

Es más simple, ya que requiere una sola máquina.

Es más complejo, ya que requiere administrar varios nodos y un balanceador de cargas.

Tiempo de inactividad

Puede causar una breve interrupción del servicio durante las actualizaciones.

Por lo general, no hay tiempo de inactividad, ya que se agregan máquinas nuevas sin interrumpir las existentes.

Límite de escalabilidad

Limitado por la capacidad física de una sola máquina.

Casi ilimitada, ya que puedes agregar tantas máquinas como necesites.

Tolerancia a errores

Tiene un punto único de fallo, es decir, si la máquina deja de funcionar, la aplicación no está disponible.

Alta tolerancia a errores: si una máquina falla, las otras pueden seguir operando.

Para una mejora inicial del rendimiento, el escalamiento vertical puede ser el método más eficaz. A medida que tu aplicación se expande y requiere mayor disponibilidad, la transición al escalamiento horizontal puede volverse más apropiada. Un enfoque híbrido, a veces llamado “escalamiento diagonal”, también combina ambos métodos.

Escalabilidad en la nube con Google Cloud

Si bien muchos proveedores ofrecen capacidades de escalamiento estándar, Google Cloud proporciona un conjunto de herramientas diferenciadas y flexibles diseñadas para satisfacer las necesidades cambiantes de las aplicaciones modernas. Desde predicciones que utilizan aprendizaje automático hasta capacidades híbridas únicas, estas ofertas pueden ayudarte a optimizar el rendimiento y los costos de manera más eficaz.

El escalado automático tradicional es reactivo: agrega recursos solo después de que la demanda aumenta repentinamente, lo que a veces puede provocar breves retrasos en el rendimiento. El escalado automático predictivo de Compute Engine resuelve este problema usando el aprendizaje automático para prever la carga futura en función de tus datos históricos. Puede escalar horizontalmente tu infraestructura antes del tráfico previsto, lo que garantiza que tus aplicaciones estén listas para atender a los usuarios en el momento en que llega la demanda.

La mayoría de los proveedores de servicios en la nube te obligan a elegir entre tamaños predefinidos para tus máquinas virtuales, lo que a menudo conlleva pagar por recursos que no necesitas. Google Cloud ofrece tipos personalizados de máquinas, lo que te permite adaptar la cantidad exacta de CPU virtuales y de memoria para tus cargas de trabajo. Este control detallado te ayuda a escalar verticalmente tu infraestructura de manera eficiente, ajustando el recurso a la tarea en lugar de hacerlo al revés.

Para las organizaciones con infraestructura local, puede ser un desafío manejar los aumentos repentinos de tráfico. El aumento de actividad en la nube te permite "desbordar" sin problemas el tráfico excesivo a la nube pública cuando tu centro de datos privado alcanza su límite de capacidad. Las soluciones híbridas y de múltiples nubes de Google Cloud, como GKE Enterprise, proporcionan la coherencia y la flexibilidad necesarias para administrar cargas de trabajo en todos los entornos, lo que garantiza que puedas escalar de forma indefinida sin abandonar tus inversiones existentes.

Cloud Run te permite ejecutar aplicaciones alojadas en contenedores sin administrar la infraestructura subyacente. Un diferenciador clave es su capacidad de reducción de escala a cero, lo que significa que, si no hay tráfico, no usas recursos y no pagas nada. Cuando el tráfico regresa, Cloud Run puede escalar verticalmente casi de forma instantánea de cero a miles de instancias, lo que lo hace ideal para aplicaciones con patrones de tráfico muy variables o impredecibles.

La escalabilidad no se trata solo de agregar servidores, sino de dirigir el tráfico a ellos de manera eficiente. Google Cloud Load Balancing usa una sola dirección IP global con anycast para distribuir el tráfico entre tus recursos en todo el mundo. Esto te permite escalar tus aplicaciones de forma global sin una configuración de DNS compleja o fragmentación regional, lo que garantiza que los usuarios siempre se enruten a la instancia en buen estado más cercana con capacidad disponible.

Beneficios clave de la escalabilidad en la nube

La escalabilidad en la nube puede ofrecer varios beneficios importantes que son difíciles de conseguir con la infraestructura local tradicional.

Rentabilidad

Puedes evitar el aprovisionamiento excesivo de recursos y los altos costos de mantener hardware inactivo. Con la escalabilidad en la nube, solo pagas por los recursos que usas, lo que convierte los costos fijos en variables.

Mejora del rendimiento y la disponibilidad

Con el ajuste dinámico de recursos, tus aplicaciones pueden mantener un alto rendimiento con más facilidad, incluso durante los períodos de mayor demanda, lo que evita las ralentizaciones y las interrupciones del servicio que pueden frustrar a los usuarios.

Manejo de la demanda impredecible

La escalabilidad te ayuda a manejar aumentos de tráfico inesperados, como los que se producen por una publicación viral en redes sociales, sin tener que agregar hardware nuevo de forma manual.

Agilidad empresarial

La capacidad de escalar rápidamente te ayuda a innovar y responder a los cambios del mercado con mayor rapidez. Podrías implementar nuevas funciones o aplicaciones sin esperar a que se configure la infraestructura.

Resuelve tus desafíos más difíciles con Google Cloud

Los clientes nuevos obtienen $300 en créditos gratuitos que pueden usar en Google Cloud.

Escalabilidad en la nube con Google Cloud

Google Cloud ofrece una variedad de servicios diseñados para ayudarte a crear aplicaciones altamente escalables. Muchos de estos servicios tienen funciones integradas de escalado automático, por lo que no tienes que administrar la infraestructura subyacente.

Da el siguiente paso

Comienza a desarrollar en Google Cloud con el crédito gratis de $300 y los más de 20 productos del nivel Siempre gratuito.

Google Cloud