¿Qué es Load Balance o balance de carga?
El balance de carga (load Balance) se refiere a la distribución del tráfico de red entrante a través de un grupo de servidores backend, también conocido como Server Farm (conjunto de servidor) o Server Pool (conjunto de servidores).
Los sitios web modernos de alto tráfico deben atender a cientos de miles (algunos hasta millones) de solicitudes concurrentes de usuarios o clientes y devolver los textos, imágenes, videos o datos de aplicaciones correspondientes, todo de manera rápida y confiable. Para lograrlo de forma rentable y cumplir con estos altos volúmenes, la mejor práctica de informática moderna generalmente requiere agregar más servidores.
El balance de carga actúa como el «Oficial de tránsito» frente a sus servidores y enruta las solicitudes de los clientes en todos los servidores para satisfacer esas solicitudes de manera que maximice la velocidad y la capacidad para poder garantizar que ningún servidor esté sobrecargado, ya que la saturación podría afectar el rendimiento . Si un único servidor falla, el balanceador de carga redirige el tráfico a los servidores en línea restantes. Cuando se agrega un nuevo servidor al grupo de servidores, el balanceador de carga comienza a integrarlo y automáticamente a enviarle solicitudes.
De esta manera, un Load Balance realiza las siguientes funciones:
- Distribuye las solicitudes de los clientes o la carga de la red de manera eficiente en varios servidores
- Asegura alta disponibilidad y confiabilidad al enviar solicitudes solo a servidores que están en línea
- Proporciona la flexibilidad de agregar o restar servidores según la demanda
Algoritmos del balanceador de carga
Existen diferentes algoritmos de equilibrio de balance carga para diferentes beneficios; la elección del método de balanceador de carga depende de sus necesidades:
- Round Robin: las solicitudes se distribuyen en el grupo de servidores secuencialmente.
- Least Connections: se envía una nueva solicitud al servidor según la cantidad de conexiones actuales de los clientes. La capacidad de cada servidor se toma en cuenta para determinar la cantidad de conexiones.
- IP Hash: la dirección IP del cliente se usa para determinar qué servidor recibe la solicitud.
Persistencia de la sesión
La información sobre la sesión de un usuario a menudo se almacena localmente en el navegador. Por ejemplo, en una aplicación con carrito de compras, los artículos en el carro del usuario pueden almacenarse en el navegador hasta que el usuario esté listo para comprarlos. Cambiar el servidor que recibe las solicitudes en medio de la sesión de compra puede causar problemas de rendimiento o una falla de la transacción. En tales casos, es esencial que todas las solicitudes del cliente se envíen al mismo servidor durante la sesión. Esto se conoce como persistencia de sesión (session persistence).
Los mejores balanceadores de carga pueden usar la persistencia de sesión según las necesidades. Otro caso de uso es cuando un upstream server almacena información solicitada por un usuario en su memoria caché para aumentar el rendimiento. El cambio de servidores provocaría que la información se recupere por segunda vez, creando ineficiencias en el rendimiento.
Configuración dinámica de grupos de servidores
Muchas aplicaciones que cambian rápidamente requieren que se agreguen o eliminen nuevos servidores de forma constante. Esto es común en entornos como Amazon Elastic Compute Cloud (EC2), que permite a los usuarios pagar solo por la capacidad de cómputo que realmente usan, mientras que al mismo tiempo asegura que la capacidad se amplíe en picos de tráfico. En dichos entornos, es de gran ayuda si el balanceador de carga puede agregar o eliminar dinámicamente servidores del grupo sin interrumpir las conexiones existentes.
balanceador de carga hardware vs software
Los balanceadores de carga generalmente vienen en dos formas: basados en hardware y basados en software. Los proveedores de soluciones basadas en hardware cargan software propietario en la máquina que proporcionan, que utiliza procesadores especializados. Para hacer frente al aumento del tráfico en su sitio web, debes de adquirir más capacidad. Las soluciones de software generalmente se ejecutan en hardware básico, haciéndolo más flexible. Puede instalar el software en el hardware de su elección (cisco, fortinet, etc) o en entornos de nube.
Newsletter Semanal
Lo más relevante de ciberseguridad y tecnología.
Síguenos en las redes