¿Qué es un balanceador de carga?

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

Un balanceador de carga es una solución que actúa como proxy de tráfico y distribuye el tráfico de red o de las aplicaciones entre los endpoints de varios servidores. Los balanceadores de carga se utilizan para distribuir la capacidad durante los periodos de mayor tráfico y aumentar la fiabilidad de las aplicaciones. Mejoran el rendimiento general de las aplicaciones al reducir la carga de servicios o nubes individuales y distribuyen la demanda entre distintas plataformas de computación para ayudar a mantener las sesiones de las aplicaciones y de la red.

Las aplicaciones modernas deben procesar millones de sesiones simultáneamente y proporcionar a cada usuario los textos, vídeos, imágenes y demás datos correctos de forma rápida y fiable. Para gestionar volúmenes de tráfico tan elevados, la mayoría de las aplicaciones cuentan con numerosos servidores de recursos que contienen datos duplicados.

El balanceo de carga distribuye dinámicamente el tráfico de red entre una red de recursos que sustentan una aplicación. Un balanceador de carga es el dispositivo o servicio que se sitúa 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 fiabilidad y la disponibilidad, incluso en momentos de alta utilización y demanda, y garantiza un mayor tiempo de actividad y una mejor experiencia de usuario.

En algunos casos, es fundamental que todas las solicitudes de un cliente se envíen al mismo servidor durante toda una sesión, por ejemplo, cuando un cliente añade artículos a un carrito de compra y después completa la compra. Mantener la conexión entre el cliente y el servidor se conoce como persistencia de sesión. Sin persistencia de sesión, la información debe sincronizarse entre los servidores y puede ser necesario recuperarla varias veces, lo que genera ineficiencias de rendimiento.

Ventajas del balanceo de carga

Los usuarios y clientes dependen de la capacidad de encontrar información y realizar transacciones prácticamente en tiempo real. Los retrasos o las respuestas poco fiables e inconsistentes —incluso durante los periodos de máxima demanda y uso— pueden hacer que un cliente se aleje para siempre. Además, los picos elevados en las necesidades de computación pueden causar estragos en un servidor interno o sistema de servidores si la demanda entrante —o «carga»— es demasiado alta para gestionarla con facilidad.

Entre las ventajas de utilizar un equilibrador de carga se incluyen las siguientes:

  • Disponibilidad de las aplicaciones: Tanto los usuarios internos como los externos deben poder confiar en la disponibilidad de las aplicaciones. Si una aplicación o función no está disponible, responde con lentitud o se bloquea, se pierde un tiempo valioso y se genera una posible fuente de frustración que podría llevar a un cliente a optar por la competencia.
  • Escalabilidad de las aplicaciones: Imagine que dirige una empresa de venta de entradas y se anuncia que las entradas para un espectáculo popular saldrán a la venta en una fecha y hora determinadas. Podría haber miles de personas, o incluso más, intentando acceder a su sitio web para comprar entradas. Sin un equilibrador de carga, su sitio estaría limitado a la capacidad de su único o primer servidor, que probablemente no sería suficiente para atender semejante demanda. En cambio, puede prepararse para este gran pico de tráfico mediante un equilibrador de carga que dirija las solicitudes y el tráfico a otros recursos informáticos disponibles. De este modo, más clientes podrán conseguir las entradas que desean.
  • Seguridad de las aplicaciones: El balanceo de carga también permite a las organizaciones ampliar sus soluciones de seguridad. Una de las principales formas de hacerlo consiste en distribuir el tráfico entre varios sistemas de backend, lo que ayuda a minimizar la superficie de ataque y dificulta el agotamiento de los recursos y la saturación de los enlaces. Los balanceadores de carga también pueden redirigir el tráfico a otros sistemas si uno de ellos es vulnerable o se ha visto comprometido. Además, pueden ofrecer una capa adicional de protección contra ataques DDoS al redirigir el tráfico entre servidores si un servidor concreto se vuelve vulnerable.
  • Rendimiento de las aplicaciones: Al hacer todo lo anterior, un balanceador de carga mejora el rendimiento de las aplicaciones. Al aumentar la seguridad, optimizar el tiempo de actividad y permitir la escalabilidad durante los picos de demanda, los balanceadores de carga mantienen sus aplicaciones funcionando según lo previsto y de la forma que usted y sus clientes desean.

Algoritmos de balanceo de carga

Existen dos tipos de algoritmos de balanceo de carga según su funcionamiento: estáticos y dinámicos. El balanceo de carga estático mide la carga entrante de un servidor mediante algoritmos que disponen de información sobre la capacidad de rendimiento de los servidores existentes en la red distribuida. El balanceo de carga dinámico puede determinar durante la ejecución qué cantidad de carga debe redistribuirse y qué sistema debe asumirla. Está diseñado para sistemas con grandes fluctuaciones en la carga entrante.

A continuación se indican algunos de los tipos más comunes de algoritmos de equilibrio de carga.

  • Round robin: Este algoritmo envía el tráfico de forma rotativa a los servidores de una lista mediante el sistema de nombres de dominio (DNS). (Nota: el balanceo de carga mediante DNS también puede ser una solución dinámica.)
  • Umbral: Este algoritmo distribuye las tareas en función de un valor umbral establecido por el administrador.
  • Aleatorio con dos opciones: El algoritmo de «potencia de dos» selecciona dos servidores al azar y envía la solicitud al elegido tras aplicar el algoritmo de Menos conexiones o el algoritmo de Menor tiempo, si así se ha configurado.
  • Menor número de conexiones: Las nuevas solicitudes se envían al servidor que tenga menos conexiones activas 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 menos ancho de banda o recursos.
  • Menor 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 el menor número de conexiones activas.
  • Hash de URL: Este algoritmo genera un valor hash a partir de la URL incluida en las solicitudes de los clientes. Las solicitudes se reenvían a los servidores en función del valor hash. El equilibrador de carga almacena en caché el valor hash de la URL, de modo que las solicitudes posteriores que utilicen la misma URL encuentren una coincidencia en la caché y se reenvíen 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 que vincula al cliente con un servidor concreto. Como la clave puede volver a generarse si se desconecta la sesión, las solicitudes de reconexión pueden redirigirse al mismo servidor utilizado anteriormente.
  • Hashing consistente: Este algoritmo asigna tanto los clientes como los servidores a una estructura en anillo, en la que cada servidor tiene asignados varios puntos según su capacidad. Cuando llega una solicitud de un cliente, se calcula su hash para asignarla a un punto del anillo y, a continuación, se enruta dinámicamente en el sentido de las agujas del reloj hasta el siguiente servidor disponible.

¿Cómo funciona el balanceo de carga?

El balanceo de carga funciona respondiendo de forma estática o dinámica a una solicitud de un usuario y distribuyéndola a uno de los servidores backend capaces de atenderla. Si uno de los servidores deja de funcionar, el balanceador de carga redirige el tráfico a los demás servidores que siguen operativos.

diagrama de un balanceador de carga

Ejemplos de balanceo de carga

Un ejemplo de balanceo de carga estático: Una empresa aloja un sitio web cuyo contenido es en gran medida estático. Este escenario sería ideal para un balanceador de carga estático, ya que las necesidades de tráfico son predecibles y constantes. La empresa puede utilizar dos (o más) servidores web idénticos entre los que el balanceador de carga estático puede distribuir el tráfico.

Un ejemplo de equilibrio de carga dinámico: Una empresa experimenta aumentos, picos y caídas de tráfico. Algunos son predecibles y otros no. Estas organizaciones se beneficiarían del equilibrio de carga dinámico. Entre ellas podría haber una tienda de comercio electrónico que anuncia los horarios y las fechas del Black Friday; una empresa sanitaria que acaba de anunciar que permite concertar citas en línea para recibir una vacuna estacional; un organismo público de empleo que exige a los beneficiarios del seguro de desempleo presentar una solicitud semanal un día concreto de la semana; o una organización de ayuda humanitaria que puede necesitar responder rápidamente en línea ante una catástrofe natural. Algunos de estos aumentos y picos de tráfico y demanda pueden preverse, pero otros no. En estos casos, 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 necesiten.

Diferentes tipos de balanceadores de carga

Los distintos tipos de balanceadores de carga, con diferentes capacidades, se encuadran en la arquitectura denominada modelo de interconexión de sistemas abiertos (OSI). Este modelo consta de siete capas. Los cortafuegos de red se sitúan en las capas uno a tres (L1: física, L2: enlace de datos y L3: red). Por su parte, el balanceo de carga se realiza en las capas cuatro a siete (L4: transporte, L5: sesión, L6: presentación y L7: aplicación). Los balanceadores de carga se utilizan generalmente en las capas 4 y 7.

  • Balanceadores de carga de capa 4 dirigen el tráfico basándose en datos de los protocolos de las capas de red y transporte (IP, TCP, FTP, UDP). El balanceo de carga en la capa IP hace referencia a una implementación en la que la dirección IP del balanceador de carga es la que se anuncia a los clientes de un sitio web y, por tanto, se registra como dirección de destino. Cuando el balanceador de carga recibe la solicitud, cambia la dirección IP de destino registrada por la del servidor de contenidos que ha seleccionado.
  • Los balanceadores de carga de capa 7 distribuyen las solicitudes en función de los datos presentes en los protocolos de la capa de aplicación como las cabeceras HTTP, las cookies, el identificador uniforme de recursos, el ID de sesión SSL y los datos de formularios HTML. También permiten tomar decisiones de enrutamiento basadas en datos incluidos en el propio mensaje de la aplicación, como el valor de un parámetro específico. La capa 7 añade la conmutación de contenido al balanceo de carga.

Balanceadores de carga basados en la nube

Los balanceadores de carga basados en la nube no se limitan a controlar los picos de tráfico y optimizar el uso de los servidores. Los balanceadores de carga nativos de la nube también pueden ofrecer análisis predictivos que permiten visualizar los cuellos de botella del tráfico antes de que se produzcan. Esto, a su vez, proporciona información práctica para ayudar a cualquier empresa a optimizar sus soluciones de TI.

Equilibrado de carga de aplicaciones: A medida que las empresas dependen cada vez más del rendimiento y la disponibilidad de las aplicaciones, el equilibrado de carga de aplicaciones puede ayudarlas a escalar, optimizar sus operaciones y ahorrar dinero.

Equilibrado de carga global de servidores: Con usuarios y clientes en todo el mundo, las empresas pueden mejorar la disponibilidad de sus cargas mediante el equilibrado de carga global de servidores, que dirige a los usuarios al punto de conexión más cercano.

Equilibrado de carga DNS: La práctica de configurar un dominio en el sistema de nombres de dominio (DNS) para que las solicitudes de los usuarios dirigidas al dominio se distribuyan entre un grupo de servidores se denomina equilibrado de carga DNS.

Equilibrado de carga de red: Los controladores de entrega de aplicaciones (ADC), dispositivos físicos o virtuales que actúan como proxies de servidores físicos, gestionan funciones de aplicaciones o de red y se apoyan en una solución de equilibrado de carga de red para llevarlas a cabo. Los ADC también utilizan otras técnicas, como el almacenamiento en caché, la compresión y la descarga del procesamiento SSL, para mejorar el rendimiento de las aplicaciones web. En la configuración habitual, el ADC se sitúa delante de un grupo de servidores web y de aplicaciones y actúa como intermediario en las solicitudes y respuestas entre estos y sus clientes, haciendo que, en la práctica, el grupo parezca un único servidor virtual para el usuario final.

Equilibrado de carga HTTP(S): La técnica para distribuir el tráfico entre varios grupos de servidores web o de aplicaciones con el fin de optimizar el uso de los recursos se denomina equilibrado de carga HTTP(S).

Equilibrado de carga interno: Un equilibrador de carga interno se asigna a una subred privada y no tiene una dirección IP pública. Normalmente funciona dentro de una granja de servidores.

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

Tecnología de balanceo de carga

Existen otros tipos de soluciones de balanceo de carga que pueden utilizarse de forma independiente o en una red junto con balanceadores de carga nativos de la nube. Estos son algunos de los tipos más 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 aplicaciones, normalmente en las propias instalaciones.

Balanceador de carga de software: Un balanceador de carga de software funciona como un balanceador de carga físico, pero se ejecuta mediante programas de software. El software mantiene las aplicaciones disponibles ante todo tipo de demandas de tráfico y utiliza el balanceo de carga tanto estático como dinámico para eliminar los puntos únicos de fallo.

Balanceador de carga virtual: Un balanceador de carga virtual es un tipo de balanceador de carga que combina balanceadores de carga de hardware y software. Utiliza software de controlador de entrega de aplicaciones que ayuda a distribuir la carga del tráfico de red entre los servidores backend físicos.

Cómo puede ayudar F5

  • Encontrar el equilibrador de carga adecuado para las necesidades de su organización es fundamental para mantener sus sistemas disponibles y optimizados, sus datos accesibles y a sus usuarios y clientes satisfechos.
  • F5 puede satisfacer las necesidades específicas de balanceo de carga de su organización, desde una solución estática hasta una solución global integrada que combina las ventajas de los balanceadores de carga de hardware, software y basados en la nube. F5 dispone de un algoritmo o una solución de balanceo de carga para las necesidades específicas de su empresa.
  • F5 NGINX Plus y NGINX son las mejores soluciones de balanceo de carga de su categoría, utilizadas por sitios web con mucho tráfico como Dropbox, Netflix y Zynga. Más de 350 millones de sitios web de todo el mundo confían en NGINX Plus y NGINX Open Source para ofrecer sus contenidos de forma rápida, fiable y segura. Como controlador de entrega de aplicaciones y balanceador de carga basado en software, NGINX Plus es considerablemente más económico que las soluciones de hardware con prestaciones similares. Combina servicios web, balanceo de carga, almacenamiento en caché, distribución de contenido multimedia y mucho más, lo que lo convierte en la opción ideal para controlar la entrega de sus aplicaciones.
  • Los servicios de aplicaciones BIG-IP ofrecen una solución integrada para gestionar, escalar y optimizar sus servicios de aplicaciones digitales. Además, BIG-IP Local Traffic Manager (LTM) incluye equilibrio de carga estático y dinámico para eliminar los puntos únicos de fallo. F5 BIG-IP DNS aplica el equilibrio de carga de las aplicaciones a escala global, garantizando que estén disponibles y respondan a las necesidades de sus clientes.
  • F5 Distributed Cloud DNS Load Balancer ofrece una solución sencilla de equilibrio de carga con una recuperación ante desastres fiable, para que sus equipos de desarrollo puedan centrarse en ayudar a su empresa a innovar.
  • F5 Distributed Cloud App Connect ayuda a habilitar el balanceo de carga conectando de forma segura sus aplicaciones y servicios en cualquier tipo de entorno, incluido el edge.
  • F5 ofrece un conjunto completo de soluciones de balanceo de carga para mantener optimizados sus aplicaciones, tráfico, datos y recursos informáticos.