Qué es el Balanceo de Carga en una Red
Qué es el Balanceo de Carga en una Red

¿Qué es el Balanceo de Carga en una Red?

Los sitios web y aplicaciones modernas generan mucho tráfico y atienden simultáneamente a numerosas solicitudes de clientes. El balanceo de carga ayuda a satisfacer estas solicitudes y garantiza una respuesta rápida y confiable del sitio web y las aplicaciones.

En este artículo, aprenderás qué es el balanceo de carga, cómo funciona y los diferentes tipos de balanceo de carga que existen.

¿Qué es el balanceo de carga?

Equilibrio de cargas y alta disponibilidad
Equilibrio de cargas y alta disponibilidad

El balanceo de carga (Load Balancing) distribuye el tráfico de red elevado entre varios servidores, permitiendo que las organizaciones escalen para satisfacer las cargas de trabajo con mucho tráfico. El balanceo de carga dirige las solicitudes de los clientes a los servidores disponibles para distribuir la carga de trabajo de manera uniforme y mejorar la velocidad de respuesta de las aplicaciones, mejorando así la disponibilidad del sitio web o servidor.

El balanceo de carga se aplica a los niveles 4-7 del modelo OSI de siete niveles.

Funciones de balanceo de carga:

  • L4. Enrutamiento de tráfico basado en datos de red y protocolos de nivel de transporte, como la dirección IP y el puerto TCP.
  • L7. Agrega el cambio de contenido al balanceo de carga, lo que permite tomar decisiones de enrutamiento según características como el encabezado HTTP, el identificador de recurso uniforme, el identificador de sesión SSL y los datos del formulario HTML.
  • GSLB. Global Server Load Balancing amplía las capacidades de L4 y L7 a servidores en diferentes sitios.

¿Por qué es importante el balanceo de carga?

El balanceo de carga es necesario para mantener el flujo de información entre el servidor y los dispositivos de usuario que se utilizan para acceder al sitio web (como computadoras, tabletas y teléfonos inteligentes).

Hay varios beneficios del balanceo de carga:

  • Fiabilidad. Un sitio web o una aplicación debe proporcionar una buena experiencia de usuario, incluso con mucho tráfico. Los balanceadores de carga manejan los picos de tráfico, moviendo los datos de manera eficiente, optimizando el uso de los recursos de entrega de aplicaciones y evitando la sobrecarga del servidor. De esta forma, el rendimiento del sitio permanece alto y los usuarios quedan satisfechos.
  • Disponibilidad. El balanceo de carga es importante porque realiza comprobaciones periódicas de estado de funcionamiento entre el balanceador de carga (equilibrador de carga) y las máquinas host para garantizar que estén recibiendo solicitudes. Si una de las máquinas host no funciona, el balanceador de carga redirige la solicitud a otros dispositivos disponibles.

Los balanceadores de carga también eliminan los servidores defectuosos del grupo hasta que se solucione el problema. Algunos subsistemas de balanceo de carga incluso crean nuevos servidores de aplicaciones virtualizados para satisfacer el aumento de las solicitudes.

  • Seguridad. El balanceo de carga se está convirtiendo en un requisito para la mayoría de las aplicaciones modernas, especialmente con la adición de funciones de seguridad a medida que se desarrollan los servicios en la nube. La función de descarga del balanceador de carga protege contra ataques DDoS, trasladando el tráfico de ataque al proveedor de servicios en la nube público en lugar del servidor corporativo.
  • Previsión. El balanceo de carga incluye análisis que pueden predecir los cuellos de botella del tráfico y permitir que las organizaciones los prevengan. Los datos analíticos predictivos ayudan a la automatización y ayudan a las organizaciones a tomar decisiones para el futuro.

¿Cómo funciona el balanceo de carga?

Los balanceadores de carga se encuentran entre los servidores de aplicaciones y los usuarios en Internet. Una vez que el balanceador de carga recibe una solicitud, determina qué servidor en el grupo está disponible y luego redirige la solicitud a ese servidor.

Explicación de balanceo de carga
Explicación de balanceo de carga

Al dirigir las solicitudes a los servidores disponibles o a los servidores con menos carga de trabajo, el balanceo de carga reduce la carga de los servidores ocupados y garantiza una alta disponibilidad y confiabilidad.

Los balanceadores de carga agregan o desactivan servidores dinámicamente en caso de alta o baja demanda. De esta forma se garantiza la flexibilidad.

El balanceo de carga también proporciona conmutación por falla además de mejorar el rendimiento. El balanceador de carga redirige la carga de trabajo desde el servidor que ha fallado a un servidor de respaldo, lo que reduce el impacto en los usuarios finales.

Tipos de balanceo de carga

Los balanceadores de carga difieren en el tipo de almacenamiento, la complejidad y la funcionalidad del balanceador. A continuación se describen los diferentes tipos de balanceadores de carga.

Basado en hardware (Hardware-Based)

Un balanceador de carga de hardware es un equipo especializado con software propietario instalado. Puede manejar grandes volúmenes de tráfico de diferentes tipos de aplicaciones.

Los balanceadores de carga de hardware incluyen capacidades de virtualización integradas que permiten el uso de múltiples instancias de balanceador de carga virtual en un solo dispositivo.

Basado en software (Software-Based)

Un balanceador de carga de software funciona en máquinas virtuales o servidores de caja blanca, generalmente como parte de los controladores de entrega de aplicaciones (ADC). El balanceo de carga virtual proporciona una flexibilidad superior en comparación con el físico.

Los balanceadores de carga de software funcionan en hipervisores comunes, contenedores o como procesos de Linux con una sobrecarga mínima en el servidor de metal desnudo.

Virtual

Un balanceador de carga virtual implementa software propietario de balanceo de carga desde un dispositivo dedicado en una máquina virtual para combinar los dos tipos mencionados anteriormente. Sin embargo, los balanceadores de carga virtuales no pueden resolver los problemas de arquitectura de escalabilidad limitada y automatización.

Basado en la nube (Cloud-Based)

El balanceo de carga en la nube utiliza la infraestructura de la nube. Estos son algunos ejemplos de balanceo de carga en la nube:

  • Balanceo de carga de red. El balanceo de carga de red se basa en el nivel 4 y utiliza la información de nivel de red para determinar a dónde enviar el tráfico de red. Esta es la solución de balanceo de carga más rápida, pero no incluye un equilibrio en la distribución del tráfico entre los servidores.
  • Balanceo de carga HTTP(S). El balanceo de carga HTTP(S) se basa en el nivel 7. Este es uno de los tipos de balanceo de carga más flexibles, lo que permite a los administradores tomar decisiones sobre la distribución del tráfico en función de cualquier información que llegue de la dirección HTTP.
  • Balanceo de carga interno. El balanceo de carga interno es casi idéntico al balanceo de carga de red, excepto que puede equilibrar la distribución en la infraestructura interna.

Algoritmos de balanceo de carga

Los diferentes algoritmos de balanceo de carga ofrecen diferentes ventajas y complejidad dependiendo del caso de uso. Los algoritmos de balanceo de carga más comunes son:

Round Robin (Por turno)

Distribuye las solicitudes de forma secuencial al primer servidor disponible y, una vez completado, mueve ese servidor al final de la cola. El algoritmo Round Robin se utiliza para grupos de servidores iguales, pero no tiene en cuenta la carga que ya existe en el servidor.

Equilibrio de carga round robin
Equilibrio de carga round robin

Least Connections (Menos conexiones)

El algoritmo de menos conexiones implica enviar una nueva solicitud al servidor menos cargado. El método de menos conexiones se utiliza cuando hay muchas conexiones permanentes distribuidas de manera desigual en el grupo de servidores.

Equilibrio de carga least connections
Equilibrio de carga least connections

Least Response Time (Menor tiempo de respuesta)

El balanceo de carga con menor tiempo de respuesta distribuye las solicitudes al servidor con la menor cantidad de conexiones activas y con el tiempo promedio de respuesta a la solicitud de monitoreo de estado más rápido. La velocidad de respuesta muestra qué tan cargado está el servidor.

Equilibrio de carga least response time
Equilibrio de carga least response time

Hash (Hash)

El algoritmo de hash determina a dónde distribuir las solicitudes en función de una clave asignada, como la dirección IP del cliente, el número de puerto o la URL de la solicitud. El método Hash se utiliza para aplicaciones que se basan en información guardada sobre los usuarios, como los carritos de compra en los sitios web de tiendas online.

Algoritmo hash para balanceo de carga
Algoritmo hash para balanceo de carga

Custom Load (Carga personalizada)

El algoritmo de carga personalizada dirige las solicitudes a servidores individuales a través del Protocolo simple de administración de red (SNMP). El administrador determina la carga del servidor que el balanceador de carga debe tener en cuenta al enrutar la solicitud (por ejemplo, el uso de la CPU y la memoria, así como el tiempo de respuesta).

Algoritmo custom load para equilibrio de carga
Algoritmo custom load para equilibrio de carga

Conclusión

Ahora ya sabes qué es el balanceo de carga, cómo aumenta el rendimiento y la seguridad del servidor y mejora la interacción con el usuario.

Los diferentes algoritmos y tipos de balanceo de carga son adecuados para diferentes situaciones y casos de uso, y debes poder elegir el tipo correcto de balanceador de carga para tu caso de uso.