¿Qué es un equilibrador de carga?

Un equilibrador de carga permite distribuir dinámicamente el tráfico de red entre los recursos (locales o en la nube) para dar soporte a una aplicación.

Un equilibrador de carga es una solución que actúa como un proxy de tráfico y distribuye el flujo de red o de aplicaciones entre los puntos de conexión de varios servidores. Su principal función es equilibrar la capacidad durante los picos de tráfico y mejorar la fiabilidad de las aplicaciones. Al reducir la carga en servicios o nubes individuales, optimizan el rendimiento general de las aplicaciones. Además, distribuyen la demanda entre distintas superficies de computación, lo que ayuda a mantener la continuidad de las sesiones tanto de aplicaciones como de red.

Las aplicaciones modernas deben procesar millones de sesiones simultáneamente y devolver a cada usuario el texto, los vídeos, las imágenes y otros datos correctos de forma rápida y fiable. Para gestionar volúmenes de tráfico tan elevados, la mayoría de las aplicaciones tienen muchos servidores de recursos con datos duplicados entre ellos.

El equilibrio de carga distribuye el tráfico de red de forma dinámica a través de una red de recursos que respaldan una aplicação . Un balanceador de carga es el dispositivo o servicio que se encuentra entre el usuario y el grupo de servidores y actúa como un facilitador invisible, garantizando que todos los servidores de recursos se utilicen por igual. Un balanceador de carga ayuda a aumentar la confiabilidad y la disponibilidad, incluso en momentos de alto uso y demanda, y garantiza un mayor tiempo de actividad y una mejor experiencia del usuario.

En algunos casos, es esencial que todas las solicitudes de un cliente se envíen al mismo servidor durante la duración de una sesión, por ejemplo, cuando un cliente coloca artículos en un carrito de compras y luego completa la compra. Mantener la conexión entre el cliente y el servidor se conoce como persistencia de la sesión . Sin persistencia de sesión, la información debe sincronizarse entre servidores y potencialmente recuperarse varias veces, lo que crea ineficiencias en el rendimiento.

Ventajas del equilibrio de carga

Los usuarios y clientes dependen de una capacidad casi en tiempo real para encontrar información y realizar transacciones. Los tiempos de espera o las respuestas poco fiables e incoherentes —incluso en los momentos de mayor demanda y uso— pueden alejar a un cliente para siempre. Y los picos elevados de necesidad de computación pueden causar estragos en un servidor interno o en un sistema de servidores si la demanda entrante —o «carga»— es demasiado alta para gestionarse con facilidad.

Las ventajas de utilizar un balanceador de carga incluyen:

  • Disponibilidad de la aplicação : Los usuarios, tanto internos como externos, necesitan poder confiar en la disponibilidad de la aplicação . Si una aplicação o función no funciona, se retrasa o se congela, se pierde un tiempo valioso y se introduce una posible fuente de fricción que podría llevar a un cliente a la competencia.
  • Escalabilidad de la aplicação : Imagínate que diriges una empresa de venta de entradas y se anuncia que las entradas para un espectáculo popular estarán disponibles en una fecha y hora determinadas. Podría haber miles o incluso más personas intentando acceder a su sitio para comprar entradas. Sin un balanceador de carga, su sitio estaría limitado a lo que su primer servidor pueda acomodar, lo que probablemente no será mucho con tanta demanda. En lugar de ello, puede planificar este gran aumento de tráfico contando con un equilibrador de carga para dirigir las solicitudes y el tráfico a otras superficies de cómputo disponibles. Y eso significa que más clientes podrán conseguir las entradas deseadas.
  • Seguridad de la aplicação : El equilibrio de carga también permite a las organizaciones escalar sus soluciones de seguridad. Una de las formas principales es distribuir el tráfico entre múltiples sistemas backend, lo que ayuda a minimizar la superficie de ataque y hace que sea más difícil agotar los recursos y saturar los enlaces. Los balanceadores de carga también pueden redirigir el tráfico a otros sistemas si uno de ellos es vulnerable o está comprometido. Además, los balanceadores de carga pueden ofrecer una capa adicional de protección contra ataques DDoS al redirigir el tráfico entre servidores si un servidor en particular se vuelve vulnerable.
  • Rendimiento de la aplicação : Al hacer todo lo anterior, un equilibrador de carga mejora el rendimiento de la aplicação . Al aumentar la seguridad, optimizar el tiempo de actividad y permitir la escalabilidad durante picos de demanda, los balanceadores de carga mantienen sus aplicações funcionando según lo diseñado y de la forma en que usted y sus clientes desean.

Algoritmos de equilibrio de carga

Existen dos tipos de algoritmos de equilibrado de carga según su funcionamiento: estáticos y dinámicos. El equilibrado de carga estático mide la carga entrante utilizando algoritmos que cuentan con información sobre la capacidad de rendimiento de los servidores en la red distribuida. Por su parte, el equilibrado de carga dinámico identifica de manera dinámica, durante el tiempo de ejecución, la cantidad de carga que debe redistribuirse y el sistema que debe asumirla. Está diseñado para entornos con grandes fluctuaciones en la carga entrante.

Los siguientes son algunos de los tipos comunes de algoritmos de equilibrio de carga.

  • Partido redondo: Este algoritmo envía tráfico a una lista de servidores en rotación utilizando el Sistema de nombres de dominio (DNS) . (Nota: El equilibrio de carga de DNS también puede ser una solución dinámica).
  • Límite: Este algoritmo distribuye tareas en función de un valor umbral establecido por el administrador.
  • Aleatorio con dos opciones: El algoritmo “poder de dos” selecciona dos servidores al azar y envía la solicitud al que esté seleccionado aplicando entonces el algoritmo de Menores Conexiones o el algoritmo de Menor Tiempo, si así está configurado.
  • Menos conexiones: Se envía una nueva solicitud al servidor con la menor cantidad de conexiones actuales con clientes. La capacidad de procesamiento relativa de cada servidor se tiene en cuenta para determinar cuál tiene menos conexiones o cuál utiliza la menor cantidad de ancho de banda o recursos.
  • Menos tiempo: En este algoritmo, se envía una solicitud al servidor seleccionado mediante una fórmula que combina el tiempo de respuesta más rápido y la menor cantidad de conexiones activas. 
  • Hash de URL: Este algoritmo genera un valor hash basado en la URL presente en las solicitudes del cliente. Las solicitudes se envían a los servidores en función del valor hash. El balanceador de carga almacena en caché el valor hash de la URL, por lo que las solicitudes posteriores que usan la misma URL generan un acierto en caché y se reenvían al mismo servidor.
  • Hash de IP de origen: Este algoritmo utiliza las direcciones IP de origen y destino del cliente para generar una clave hash única para vincular al cliente a un servidor en particular. Como la clave se puede regenerar si la sesión se desconecta, esto permite que las solicitudes de reconexión se redirijan al mismo servidor utilizado anteriormente.
  • Hashing consistente: Este algoritmo asigna tanto clientes como servidores a una estructura de anillo, y a cada servidor se le asignan múltiples puntos en el anillo según su capacidad. Cuando llega una solicitud de un cliente, se envía a un punto del anillo y luego se enruta dinámicamente en el sentido de las agujas del reloj al siguiente servidor disponible.

¿Cómo funciona el equilibrio de carga?

El equilibrio de carga responde estática o dinámicamente a la solicitud de un usuario y la distribuye a uno de los servidores back-end capaces de satisfacerla. Si uno de los servidores se cae, el equilibrador de carga redirige el tráfico al resto de servidores en línea.

Ejemplos de equilibrio de carga

Un ejemplo de equilibrio de carga estático: Una empresa aloja un sitio web con contenido en gran parte estático. Este escenario sería ideal para un balanceador de carga estático porque las necesidades de tráfico son predecibles y consistentes. La empresa puede utilizar dos (o más) servidores web idénticos entre los cuales el balanceador de carga estático puede distribuir el tráfico.

Un ejemplo de equilibrio de carga dinámico: Una empresa experimenta subidas, bajadas y caídas en el tráfico. Algunos son predecibles y otros no. Estas organizaciones se beneficiarían del equilibrio de carga dinámico . Estas empresas pueden incluir un minorista de comercio electrónico que anuncia los horarios y fechas del Viernes Negro; una empresa de atención médica que acaba de anunciar que puede programar citas en línea para una vacuna de temporada; una agencia de desempleo del gobierno que requiere que los beneficiarios del seguro de desempleo presenten un reclamo semanal en un determinado día de la semana; una organización de ayuda que puede necesitar responder rápidamente en línea a un desastre natural. Algunos de estos aumentos repentinos y repentinos de tráfico y demanda se pueden planificar, pero otros no. En estos escenarios, un algoritmo de equilibrio de carga dinámico ayudará a garantizar el acceso a las aplicaciones y los recursos cuando los clientes y usuarios más los necesitan.

Diferentes tipos de equilibradores de carga

En la arquitectura denominada modelo de interconexión de sistemas abiertos (OSI) residen distintos tipos de equilibradores de carga con distintas capacidades. En este modelo hay siete capas. Los firewalls de red están en los niveles del uno al tres (L1-cableado físico, L2-enlace de datos y L3-red). Mientras tanto, el equilibrio de carga ocurre en las capas cuatro a siete (L4-transporte, L5-sesión, L6-presentación y L7- aplicação). Los balanceadores de carga generalmente se utilizan en la capa 4 y la capa 7

  • Los balanceadores de carga de capa 4 dirigen el tráfico en función de los datos de los protocolos de capa de red y transporte (IP, TCP, FTP, UDP). El equilibrio de carga en la capa IP se refiere a una implementación donde la dirección IP del balanceador de carga es la que se anuncia a los clientes para un sitio web y, por lo tanto, se registra como la dirección de destino. Cuando el balanceador de carga recibe la solicitud, cambia la dirección IP de destino registrada a la del servidor de contenido que ha elegido.
  • Los balanceadores de carga de capa 7 distribuyen las solicitudes en función de los datos que se encuentran en los protocolos de la capa de aplicação , como encabezados HTTP, cookies, identificador uniforme de recursos, ID de sesión SSL y datos de formulario HTML. También permiten tomar decisiones de enrutamiento basadas en datos dentro del propio mensaje de la aplicação , como el valor de un parámetro específico. La capa 7 agrega conmutación de contenido al equilibrio de carga.

Equilibradores de carga basados en la nube

Los balanceadores de carga basados en la nube no son simplemente controladores de tráfico para picos de tráfico y para optimizar el uso del servidor. Los balanceadores de carga nativos de la nube también pueden proporcionar análisis predictivos para ayudarlo a visualizar los cuellos de botella de tráfico antes de que ocurran. Esto, a su vez, proporciona información útil para ayudar a cualquier empresa a optimizar sus soluciones de TI.

Equilibrio de carga de aplicação : A medida que las empresas dependen cada vez más del rendimiento y la disponibilidad de las aplicação , el equilibrio de carga de las aplicação puede ayudarlas a escalar, optimizar las operaciones y ahorrar dinero.

Equilibrio de carga del servidor global: Con usuarios y clientes en todo el mundo, las empresas pueden mejorar su disponibilidad de carga con el equilibrio de carga del servidor global , que envía a los usuarios al punto final más cercano a ellos. 

Equilibrio de carga de DNS: La práctica de configurar un dominio en el Sistema de nombres de dominio (DNS) de modo que las solicitudes de los usuarios al dominio se distribuyan entre un grupo de servidores se denomina equilibrio de carga de DNS .

Equilibrio de carga de red: Los controladores de entrega de aplicação (ADC), dispositivos físicos o virtuales que funcionan como servidores físicos, administran funciones de aplicação o de red y dependen de una solución de equilibrio de carga de red para respaldarlas. Los ADC también utilizan otras técnicas, incluido el almacenamiento en caché, la compresión y la descarga del procesamiento SSL, para mejorar el rendimiento de las aplicações web. En la configuración habitual, el ADC se ubica frente a un grupo de servidores web y de aplicação y media las solicitudes y respuestas entre ellos y sus clientes, lo que hace que el grupo parezca un único servidor virtual para el usuario final.

Equilibrio de carga HTTP(S): La técnica para distribuir el tráfico entre varios grupos de servidores web o de aplicação para optimizar la utilización de recursos se denomina equilibrio de carga HTTP(S)

Equilibrio de carga interna: Un balanceador de carga interno está asignado a una subred privada y no tiene una IP pública. Normalmente funciona dentro de una granja de servidores.

Diámetro: Un balanceador de carga de diámetro distribuye el tráfico de señalización entre múltiples servidores en una red. Una de las formas más rentables de hacerlo es escalar el plano de control de diámetro en lugar de la capa de transporte de datos. (El equilibrio de carga diametral también puede ser estático o dinámico).

Tecnología del equilibrador de carga

Existen otros tipos de soluciones de equilibradores de carga, que pueden utilizarse solos o en una red con equilibradores de carga nativos de la nube. A continuación se indican algunos tipos destacados.

Balanceador de carga de hardware: Un balanceador de carga de hardware es un dispositivo físico con un sistema operativo especializado que puede programarse para distribuir el tráfico web entre varios servidores de aplicação , generalmente locales. 

Balanceador de carga de software: Un equilibrador de carga de software funciona como un equilibrador de carga físico, pero se ejecuta en programas de software . El software mantiene las aplicaciones disponibles a través de todo tipo de demandas de tráfico, utilizando equilibrio de carga estático y dinámico para eliminar puntos únicos de falla.

Balanceador de carga virtual: Un tipo de equilibrador de carga que combina equilibradores de carga de hardware y software es un equilibrador de carga virtual. Utiliza un software controlador de entrega de aplicação que ayuda a distribuir la carga de tráfico de red entre los servidores back-end de hardware.

Cómo puede ayudar F5

  • Encontrar el equilibrador de carga adecuado para las necesidades de su organización es esencial para garantizar la disponibilidad y optimización de sus sistemas, el acceso a sus datos y la satisfacción de sus usuarios y clientes.
  • F5 puede abordar las necesidades específicas de balanceador de carga de su organización, desde una solución estática hasta una solución global integrada que combina las fortalezas del hardware, el software y los balanceadores de carga basados en la nube. F5 tiene un algoritmo o solución de equilibrio de carga para las necesidades específicas de su negocio.
  • F5 NGINX Plus y NGINX son las mejores soluciones de equilibrio de carga de su clase utilizadas por sitios web de alto tráfico como Dropbox, Netflix y Zynga. Más de 350 millones de sitios web en todo el mundo confían en NGINX Plus y NGINX Open Source para entregar su contenido de manera rápida, confiable y segura. Como controlador de entrega de aplicação y equilibrador de carga basado en software, NGINX Plus es significativamente menos costoso que las soluciones de hardware con capacidades similares. Combina servicio web, equilibrio de carga, almacenamiento en caché, entrega de medios y más, lo que lo convierte en una opción ideal para controlar la entrega de sus aplicações.
  • Los servicios de aplicação BIG-IP proporcionan una solución integrada para administrar, escalar y optimizar sus servicios de aplicação digitales. Además, BIG-IP Local Traffic Manager (LTM) incluye equilibrio de carga estático y dinámico para eliminar puntos únicos de falla. F5 BIG-IP DNS equilibra la carga en todas las aplicações y lo aplica globalmente, garantizando que sus aplicações funcionen y respondan a las necesidades de sus clientes. 
  • F5 Distributed Cloud DNS Load Balancer ofrece una solución de equilibrio de carga simple con recuperación ante desastres confiable, para que sus equipos de desarrollo puedan concentrarse en ayudar a su empresa a innovar.
  • F5 Distributed Cloud App Connect ayuda a habilitar el equilibrio de carga al conectar de forma segura sus aplicaciones y servicios en cualquier tipo de entorno, incluido el borde.
  • F5 ofrece un completo conjunto de soluciones de equilibrio de carga para mantener optimizadas sus aplicaciones, tráfico, datos y superficie de computación.