Escalado horizontal frente a escalado vertical: ¿Cuál es la mejor opción para las API?

El escalado horizontal añade más máquinas a un sistema para distribuir la carga. El escalado vertical actualiza la CPU, la RAM y el almacenamiento de una sola máquina. La elección depende de la arquitectura del sistema y de las necesidades de las aplicaciones.

La demanda de una interfaz de programación de aplicaciones (API) no suele ser estática. Subirá y bajará con el tiempo. En algunos casos, como los picos de tráfico durante las vacaciones, es posible que una API necesite gestionar un volumen de solicitudes significativamente mayor que en otros momentos. Para hacer frente a este aumento del tráfico, es necesario ampliar la escala del uso de las API. Los administradores del sistema tienen dos opciones a la hora de escalar una API. Pueden optar por el escalado horizontal, que se refiere a añadir más instancias de API a un clúster, o el escalado vertical, que significa añadir recursos a la capacidad informática de la máquina que aloja la API. Este artículo explora las diferencias entre ambas opciones y cuál es la mejor para la escalabilidad de la API.

Escalado horizontal

El escalado horizontal, también llamado "ampliación de la escala", es el proceso de implementación de máquinas virtuales (VM) adicionales para que haya más capacidad de API que pueda gestionar una carga mayor. (La reducción de la capacidad se conoce como "reducción de la escala"). A medida que se necesita más capacidad, los administradores del sistema pueden añadir más máquinas virtuales al clúster. Sin embargo, se necesita un software de gestión de recursos especializado para gestionar la carga de llamadas de API y enrutarlas a la instancia de máquina virtual correcta del clúster, manteniendo el equilibrio.

Escalado vertical

El escalado vertical es el proceso de añadir recursos a un único nodo. Este proceso contrasta con el escalado horizontal, que añade nodos. El escalado vertical, también conocido como ampliación de la escala o reducción de la escala, consiste en añadir recursos como capacidad de la unidad central de procesamiento (CPU), memoria o almacenamiento a un servidor. En el caso de las API, el escalado vertical suele implicar la adición de capacidad informática a la máquina virtual que aloja la API.

Por ejemplo, si una API se aloja en una máquina virtual a la que se le ha asignado un núcleo de CPU y 512 megabytes de memoria de acceso aleatorio (RAM), ampliar la escala de esa API podría significar duplicar el recuento de núcleos y la RAM. La API tendría entonces dos núcleos de procesador de CPU dedicados y 1024 megabytes de RAM. Con esta nueva configuración, la API debería ser capaz de gestionar aproximadamente el doble de carga, aunque las restricciones en el ancho de banda de la red, la velocidad de almacenamiento y otros factores pueden reducir el impacto del escalado vertical. El escalado vertical también supone un desafío para la gestión de recursos, pero el software especializado puede solucionar este problema.

Por qué la naturaleza sin estado de las API es importante para la escalabilidad

Las API se diseñan normalmente como sin estado, lo que significa que no almacenan datos de solicitudes ni retienen información entre sesiones. Esta naturaleza sin estado es crucial cuando se evalúan métodos de escalabilidad. Las API sin estado no requieren replicación de datos entre instancias, lo que hace que el escalado horizontal sea más eficiente y fácil de implementar. Los administradores del sistema pueden añadir o eliminar máquinas virtuales según sea necesario sin afectar a las operaciones de API, ya que el cliente de API no depende de instancias de servidor específicas para funcionar.

No hay nada malo en tener un sistema con estado. De hecho, puede ser esencial para el funcionamiento deseado de la aplicación. Sin embargo, resulta mucho más complicado ejecutar el escalado horizontal para una aplicación con estado. Para hacerlo, sería necesario copiar los datos almacenados de la versión original de la aplicación en nuevas instancias.

Por el contrario, una aplicación o API sin estado no almacena datos de solicitud. No conserva los datos de la sesión en la memoria. Cada vez que se inicia una sesión, es como si la aplicación se reuniera con el cliente por primera vez. Una vez finalizada la sesión, se acabó todo, sin que se conserven los datos de la sesión en la memoria.

El escalado horizontal es posible para una aplicación sin estado porque no importa qué máquina virtual responda a las llamadas de API. El cliente de API puede llamar a un número infinito de máquinas virtuales que alojan la API, y nunca importará. Los administradores del sistema pueden añadir o eliminar tantas máquinas virtuales como deseen sin que ello afecte al funcionamiento de la API.

El escalado horizontal: la elección adecuada para las API

Dado que la naturaleza de las API es sin estado, el escalado horizontal surge como la forma correcta de escalarlas. Añadir más máquinas virtuales para aumentar la capacidad funciona bien con las API sin estado. Los administradores pueden crear clústeres de máquinas virtuales que se escalan horizontalmente a medida que crece la demanda de API.

Además, aunque es posible escalar las API verticalmente, es preferible usar el escalado horizontal porque los problemas de asignación de recursos en el escalado vertical hacen que sea relativamente más difícil hacerlo. Por el contrario, el escalado automático horizontal funciona fácilmente con las API. Cuando las herramientas de gestión de sistemas detectan un pico en el tráfico de API, pueden añadir automáticamente máquinas virtuales para alojar más instancias de la API en un clúster. Esto es un poco más difícil en una situación de escalado vertical, ya que el escalado automático no funciona bien en el escalado vertical.

La demanda de API cambiará inevitablemente con el tiempo. Será necesario ampliar o reducir la escala de la capacidad de la API. Tanto el escalado horizontal como el vertical son opciones disponibles para las API. Sin embargo, la naturaleza sin estado de las API, junto con la relativa facilidad del escalado automático horizontal, favorece el escalado horizontal como el enfoque adecuado para escalar las API.

Sistemas distribuidos y arquitectura de microservicios

En un sistema distribuido, en el que las API forman parte de una arquitectura de microservicios, el escalado horizontal resulta especialmente ventajoso. Cada microservicio se puede escalar de forma independiente en función de su carga y requisitos específicos. Este enfoque modular permite un uso más eficiente de los recursos y una mejor tolerancia a fallos, ya que los fallos en un microservicio no afectan a los demás.

Además, en una arquitectura de microservicios, el escalado horizontal se alinea con los principios de los sistemas distribuidos, en los que se implementan diferentes servicios en varios nodos. Esto garantiza que el sistema pueda gestionar cargas variables y mantener un rendimiento óptimo incluso durante las horas de mayor tráfico.

Minimización del tiempo de inactividad con estrategias de escalabilidad

El tiempo de inactividad es una preocupación fundamental a la hora de escalar las API, ya que cualquier interrupción en el servicio puede provocar pérdidas de ingresos y la insatisfacción del cliente. El escalado horizontal minimiza el tiempo de inactividad al permitir a los administradores del sistema añadir o eliminar servidores sin que esto afecte a la disponibilidad de la API. Por el contrario, el escalado vertical puede requerir el reinicio del servidor o dejarlo fuera de línea temporalmente, lo que puede interrumpir los servicios.

Los proveedores de API pueden aprovechar el escalado horizontal para garantizar un funcionamiento continuo, especialmente durante el mantenimiento planificado o los picos de tráfico inesperados. Al distribuir la carga entre varios servidores, el escalado horizontal garantiza que la API siga teniendo capacidad de respuesta y esté disponible, incluso si los servidores individuales deben desconectarse para realizar actualizaciones o reparaciones.

Preguntas frecuentes

El escalado horizontal tiene un impacto positivo en el rendimiento de una API. Este enfoque implica añadir más servidores a la infraestructura y distribuir la carga entre ellos. Como resultado, el sistema puede gestionar más solicitudes simultáneas, lo que mejora los tiempos de respuesta y el rendimiento general. 

Además de las ventajas de rendimiento, el escalado horizontal contribuye a la redundancia y fiabilidad del sistema. Si un servidor falla, el balanceador de carga desvía el tráfico a los servidores restantes que pueden asumir el control sin problemas, lo que garantiza un funcionamiento continuo. Esto se alinea con las prácticas recomendadas de seguridad de API y mejora la resiliencia del sistema frente a posibles fallos.

El escalado vertical implica la actualización de los recursos de un único servidor para mejorar su rendimiento. Esto puede mejorar la velocidad de procesamiento de las solicitudes de API, ya que un servidor más potente puede gestionar una carga mayor. Sin embargo, es importante señalar que el escalado vertical puede tener rendimientos decrecientes. Existen límites con respecto a cuánto puede actualizarse una sola máquina. Más allá de un determinado punto, puede que las ganancias de rendimiento no sean proporcionales a la inversión.

Al considerar el escalado horizontal frente al vertical, es crucial sopesar los posibles beneficios frente a los riesgos. Tenga en cuenta aspectos como las implicaciones de seguridad de la API REST y asegúrese de que el sistema sigue siendo resiliente frente a los fallos.

Es importante comprender la diferencia entre el escalado horizontal y el vertical para determinar cuándo se debe utilizar cada uno de ellos.

Utilice el escalado vertical cuando: 

  • Su aplicación web se encuentra en sus primeras etapas o tiene una carga ligera, que un único servidor potente puede gestionar de forma eficaz. Esto es especialmente cierto cuando la demanda de llamadas de API es baja.
  • La aplicación o la API no admiten bien la informática distribuida. En los casos en que la arquitectura o el diseño no se alinean con los principios de escalado horizontal, el escalado vertical puede ser una alternativa adecuada. 

Utilice el escalado horizontal cuando: 

  • Su aplicación esté experimentando un crecimiento y es probable que la demanda aumente. El escalado horizontal permite que la infraestructura se adapte a las cargas cambiantes añadiendo más servidores según sea necesario. 
  • Debe garantizar una alta disponibilidad y redundancia. El escalado horizontal proporciona redundancia, lo que hace que el sistema sea más resiliente frente a los fallos y garantiza un funcionamiento continuo incluso si uno o más servidores dejan de funcionar.

La rentabilidad del escalado horizontal frente al vertical depende de factores como los requisitos específicos de la aplicación, la escala de implementación y la demanda general. El escalado vertical suele ser más rentable porque solo se adquieren uno o dos componentes nuevos cuando se escala. Sin embargo, se vuelve menos rentable a medida que se acerca a los límites de la capacidad del servidor.

Por qué los clientes eligen Akamai

Akamai es la empresa de ciberseguridad y cloud computing que potencia y protege los negocios online. Nuestras soluciones de seguridad líderes en el mercado, nuestra inteligencia ante amenazas consolidada y nuestro equipo de operaciones globales proporcionan una defensa en profundidad para proteger los datos y las aplicaciones empresariales. Las soluciones integrales de cloud computing de Akamai garantizan el rendimiento y una buena relación calidad-precio en la plataforma más distribuida del mundo. Las grandes empresas confían en Akamai por su fiabilidad, escalabilidad y experiencia inigualables en el sector, idóneas para crecer con seguridad.

Entradas de blog relacionadas

Introducción a Akamai DNS Posture Management
La nueva solución Akamai DNS Posture Management aborda los desafíos de la infraestructura de DNS fragmentada: visibilidad, capacidad de observación y capacidad de acción.
Información clave sobre el cumplimiento: Cómo detener el movimiento lateral y mejorar la autorización
Detenga el movimiento lateral antes de que comience. Descubra cómo cumplir las normativas de cumplimiento de seguridad con seguridad por capas, microsegmentación y protección de API inteligente.
Sin servicios disponibles y con petición de rescate: batalla de una ciudad contra la ciberdelincuencia
Descubra cómo tener un plan y prepararse con antelación puede reducir la gravedad de un ataque de ransomware o evitarlo por completo.