¿Qué es el load balancing?

¿Qué es el load balancing?

El load balancing o balanceo de carga es una tecnología diseñada para distribuir la carga de trabajo entre distintos servidores o aplicaciones. El objetivo: optimizar las prestaciones globales de la infraestructura, así como su rendimiento y su capacidad.

Load Balancer de OVHcloud

Load balancer: definición

El tráfico online ha aumentado de forma exponencial en los últimos diez años. Los internautas son cada vez más exigentes en materia de rapidez de acceso y seguridad, por lo que los servidores web deben hacer frente a una mayor demanda. La tecnología load balancing, entendida como estrategia de optimización de las cargas de trabajo, ofrece una respuesta a esta nueva realidad. Y es que esta tecnología permite que un grupo de servidores (cluster) haga frente a los picos de tráfico e incluso proporcione una solución de respaldo en caso de avería. En ahí cuando interviene el load balancer o balanceador de carga, equilibrando la carga de trabajo entre los servidores para mantener su capacidad a un nivel óptimo. De este modo, los sitios web alojados en servidores con un load balancer serán menos propensos a ralentizaciones o interrupciones del servicio.

Los balanceadores o repartidores de carga se instalan en infraestructuras dedicadas, físicas o virtuales. En el caso de las plataformas físicas, un servidor actuará como load balancer, por lo que será necesario realizar la inversión correspondiente. Los programas de balanceo de carga también pueden instalarse en máquinas virtuales («virtual machine» o MV). En ese caso, adoptará la forma de un controlador de entrega de aplicaciones o ADC (del inglés «aplicación delivery controller»). En su versión virtual, el load balancer será más flexible y permitirá al usuario escalar la carga automáticamente en función de las previsiones de tráfico.

En ambos casos, se identificará en tiempo real qué servidor es el más adecuado para responder a una petición, garantizando un nivel de rendimiento estable en el cluster. En caso de fallo en una máquina, el balanceador de carga deberá desviar la carga de trabajo hacia otro servidor.

Cuando un usuario solicita cargar la página de un sitio web, el load balancer interviene entre el visitante y el servidor, analizando qué máquina es la más adecuada para responder a esta petición y, a continuación, transmitiéndola. También es posible añadir o eliminar servidores en función de la carga, según las necesidades de cada proyecto.

¿Cómo funciona un load balancer?

El balanceo de carga se realiza mediante un algoritmo basado en el DNS (Domain Name System). El usuario accede a los sitios web a través de una URL, asociada a una dirección IP. Esta última contacta con el balanceador de carga, que transmite la petición al servidor. El balanceo dependerá del tipo de algoritmo utilizado. Los cuatro algoritmos más conocidos son Round Robin, Weighted Round Robin, Least Connections y Weighted Least Connections.

 

Round Robin

Este método crea una cola para las peticiones entrantes. Estas últimas son gestionadas por el balanceador de carga, que las distribuye entre los servidores del cluster. Las peticiones se asignan de forma secuencial, en función de la disponibilidad de las máquinas. El algoritmo Round Robin no tiene en cuenta la urgencia de la petición ni la carga que representa para el servidor en cuestión, por lo que funciona bien en entornos en los que los servidores disponen de recursos idénticos. Sin embargo, en una infraestructura en la que los recursos sean diferentes, este sistema podría asignar cargas no adaptadas a máquinas menos potentes, generando sobrecargas.

Round Robin es el método más clásico y sirve como modelo para otros algoritmos.

 

Weighted Round Robin

A diferencia del Round Robin clásico, este método funciona en distribución ponderada: a cada servidor se le asigna por adelantado un valor en función de sus capacidades y su potencia. Por ejemplo, el más potente tendrá un valor de 10 y el menos potente, un valor de 1. Así pues, el load balancer asignará una carga mayor a la máquina más potente. Este método es recomendable para entornos que dispongan de servidores con recursos diferentes, ya que la carga se optimiza en función de sus capacidades.

 

Least Connections

Los dos métodos anteriores no tienen en cuenta el número de conexiones que los servidores del cluster deben gestionar, durante la distribución de tareas por parte del load balancer, por lo que a veces pueden acumularse varias conexiones en un servidor y provocar su sobrecarga. Least Connections permite solucionar este problema, ya que tiene en cuenta las peticiones existentes en el servidor al distribuir la carga. La máquina con el menor número de peticiones recibe la siguiente solicitud del load balancer. Sin embargo, este algoritmo no tiene en cuenta las capacidades técnicas de los servidores, por lo que es más adecuado para entornos con recursos de servidor idénticos.

 

Weighted Least Connections

Este algoritmo complementa al de Least Connections. En una infraestructura en la que los recursos de los servidores son heterogéneos, tiene en cuenta el volumen de peticiones para cada máquina, así como su ponderación definida por el administrador. Al igual que sucede en Weighted Round Robin, el servidor más potente tiene una mayor ponderación. Esto permite mantener una distribución óptima de las peticiones en el cluster, ya que cada nueva solicitud se asigna al servidor con la relación conexiones activa-ponderación más baja.

Ventajas e importancia del load balancer

La principal ventaja de un load balancer es que permite reducir los tiempos de respuesta de un sitio web tras las peticiones de los usuarios. La optimización de la carga de trabajo de los servidores reduce el riesgo de fallos provocados por una sobrecarga. Y es que, si una máquina deja de estar disponible, los usuarios serán redirigidos a otro servidor, de forma que siempre tendrán acceso a las páginas. De este modo, es posible asegurar una experiencia óptima gracias a una calidad de servicio constante: alojamiento flexible, alta disponibilidad, escalabilidad, etc. Además, OVHcloud no limita el ancho de banda ni el tráfico mensual.

La tecnología load balancer es especialmente adecuada para los sitios de e-commerce, en los que las grandes fluctuaciones de tráfico pueden provocar sobrecargas. El balanceo de la carga permite mantener un nivel de calidad homogéneo en los sitios web, preservando su imagen online y ofreciendo mayor seguridad a los clientes. De forma más concreta, el reparto de la carga evitará también que se pierdan las cestas de los compradores o se interrumpan las operaciones de pago.