Conecta con nosotros

Opinión

Escalado vertical vs. horizontal, dos opciones para facilitar el crecimiento de las aplicaciones

Publicado el

El escalado es una de las características más deseables en las aplicaciones y una de las principales preocupaciones para equipos de desarrollo y administración de servidores. Básicamente, se refiere a la capacidad de crecimiento de la aplicación para atender a un número cada vez mayor de solicitudes y usuarios con total normalidad y sin degradaciones de servicio.

De cara a conseguir esta deseada cualidad, existen diferentes vías que no son incompatibles: algunas más centradas en el desarrollo del software y otras en los servidores que harán de plataforma de ejecución.

Escalado vertical

El escalado vertical tiene mucho que ver con el hardware del servidor de la aplicación. Se consigue de una manera muy sencilla: aumentando los recursos del servidor, es decir, añadiendo potencia y memoria de procesamiento. Este tipo de escalado es bastante sencillo. Únicamente requiere una intervención en el hardware del equipo, aumentando los recursos o, incluso, cambiando completamente de servidor.

Entre sus innumerables ventajas destaca la facilidad de implementación y configuración, que no requiere un diseño específico en la arquitectura de la aplicación. Además, a priori resulta más económico que otras opciones. Sin embargo, el escalado vertical está limitado a la capacidad de un único servidor y no aporta beneficios respecto a la disponibilidad de la aplicación, que seguirá dependiendo de una única máquina.

Escalado horizontal

Por su parte, el escalado horizontal se consigue aumentando el número de servidores que atienden una aplicación. Para ello, un grupo de distintos servidores se configura para atender las peticiones de manera conjunta (es lo que se denomina cluster) y la carga de trabajo se distribuye entre ellos a través de un balanceador.

Este tipo escalado es mucho más potente que el vertical. Sin embargo, puede requerir mayores conocimientos técnicos. En muchos casos, hay que adaptar la arquitectura de aplicación para que se adapte a este funcionamiento y, además, también configurar y crear la red de servidores de un cluster y el balanceo, algo que afortunadamente podemos hacer en sólo unos clics si trabajamos con servidores cloud de última generación.

En este caso, el escalado es prácticamente infinito sin complicaciones y garantiza los más elevados niveles de rendimiento y disponibilidad para la aplicación. En su contra, la dificultad de configuración y, lógicamente, hablamos de una opción que requiere más inversión económica, ya que utiliza varios servidores.

Cómo mejorar el escalado

Es importante decidir de antemano qué se necesitará para conseguir un adecuado escalado y cómo se va a realizar. Se debe pensar en factores como el comportamiento del crecimiento de la aplicación y los límites de los recursos de infraestructura que podamos tener o asumir económicamente. Estas decisiones seguramente condicionen el desarrollo y marquen la necesidad de arquitecturas específicas (microservicios, REST…), de modo que el software se adapte correctamente.

En cuanto al escalado vertical es importante saber que no siempre es posible aumentar los recursos actuales de las máquinas, ya que es algo que depende del tipo de arquitectura y tipo de servidores.

En el caso de los servidores dedicados, las posibilidades de expansión pueden ser limitadas y, en muchos casos, la mejor recomendación es cambiarse de servidor, con la correspondiente migración. Esto, sin embargo, no sucede con los servidores cloud, que son flexibles y permiten asignar más recursos en caliente cuando es necesario, sin las complicaciones que conlleva un cambio de máquina. Los servidores cloud también facilitan mucho el escalado horizontal, ya que crear nuevos servidores y añadirlos al cluster es muy rápido y sencillo, apenas requiere sólo unos clics.

Generalmente, el escalado vertical es más que adecuado para la mayoría de las páginas web y aplicaciones que las pymes ponen en marcha. Sin embargo, en los entornos corporativos, cuando precisamos de alta disponibilidad por la criticidad de la aplicación o su impacto en el negocio o esperamos un crecimiento exponencial de usuarios con una cantidad alta de solicitudes en un corto periodo de tiempo, es más que recomendable planificar una estrategia de escalado horizontal.

También se debe considerar que a veces el aumento del hardware no es viable, por presupuesto o porque la mejoría no resulta lo suficientemente relevante para una aplicación. En estos casos el escalado horizontal es mucho más seguro. También podemos recurrir a estrategias mixtas, como sería separar ciertos servicios a un servidor adicional, como la base de datos. De esta manera, sin llegar a las complejidades de configuración de un cluster, podemos tener dos máquinas atendiendo solicitudes, una encargada de la parte del servidor web y otra de la base de datos.

Firmado: José María Baquero, Desarrollador Web de Arsys 

Lo más leído