Tener una aplicación que se bloquea en medio de una compra es frustrante. Puede haber muchas razones para el bloqueo, incluyendo una gestión inadecuada de la carga de trabajo. Una aplicación basada en la nube se sobrecarga rápidamente con un solo servidor detrás, lo que lleva a interrupciones del servicio, tiempos de inactividad e incluso bloqueos. Demasiados usuarios accediendo simultáneamente a los mismos datos o software dentro de la infraestructura de TI de una empresa causan un bloqueo, especialmente si el tráfico de la aplicación no está equilibrado adecuadamente. Pero, ¿cómo equilibran las empresas el tráfico? Entra el software de balanceo de carga. ¿Qué es un balanceador de carga? Un balanceador de carga es un dispositivo de red o software que facilita el balanceo de carga: el proceso de distribuir metódica y eficientemente el tráfico de red sobre múltiples servidores de respaldo en un grupo de servidores. Reduce los gastos generales de gestión y mantenimiento de aplicaciones actuando como un proxy inverso. Esto hace que las aplicaciones sean más confiables y capaces de manejar usuarios concurrentes y sesiones de red. Un balanceador de carga actúa como un facilitador invisible para los usuarios. No pueden verlo, pero sus solicitudes se enrutan a través de él todo el tiempo. Por ejemplo, un usuario que compra para Navidad navegará por diferentes productos antes de elegir uno o más. Cuando el usuario hace clic en un producto, el dispositivo cliente envía una solicitud de información a los servidores de respaldo. Un balanceador de carga recibe esta solicitud entrante y la enruta a todos los servidores capaces. Esta distribución de carga es crucial para un rendimiento eficiente de los datos y la optimización de los recursos de entrega de aplicaciones. También mejora el rendimiento al evitar que un solo servidor se sobrecargue. Además, un balanceador de carga verifica la capacidad de un servidor para manejar solicitudes, elimina servidores no aptos e incluso crea nuevos servidores de aplicaciones virtualizados según sea necesario. Funciones de un balanceador de carga: - Agrega o elimina servidores según demanda - Reduce el tiempo de respuesta de las solicitudes de usuario - Distribuye las solicitudes de los clientes de manera eficiente - Identifica y bloquea contenido malicioso - Automatiza la recuperación ante desastres en sitios de respaldo - Hace que el entorno informático sea más resiliente - Detecta automáticamente fallos de servidor y redirige las solicitudes de los clientes - Permite el mantenimiento del servidor sin afectar las operaciones actuales - Dirige el tráfico a servidores capaces y en línea para asegurar el rendimiento y la fiabilidad Hoy en día, los balanceadores de carga suelen estar contenidos en controladores de entrega de aplicaciones (ADCs) que optimizan el flujo de datos entre dos entidades y mejoran el rendimiento de la aplicación. Esto resultó de la evolución continua de los balanceadores de carga desarrollados originalmente para asegurar servicios de aplicaciones predecibles, escalables y altamente disponibles. El balanceo de carga ha recorrido un largo camino desde su inicio. Las empresas en los primeros días de internet comercial confiaban en servidores basados en PC individuales para manejar el tráfico web. Pero, estos servidores no podían manejar las crecientes demandas de las aplicaciones web. Luego vino la tecnología de sistema de nombres de dominio (DNS) round-robin. Funcionó bien en términos de distribución secuencial de usuarios utilizando el nombre como un punto de virtualización. Sin embargo, no podía mejorar la alta disponibilidad ni eliminar dinámicamente los servidores que funcionaban mal. Esto llevó al nacimiento de soluciones de balanceo de carga diseñadas específicamente. Estas soluciones están integradas directamente en el sistema operativo (OS) o el software de la aplicación y se comunican utilizando el protocolo de internet de clúster (IP) en lugar de direcciones IP físicas. Una sesión de servicio comenzaría solo después de que un servidor respondiera a la solicitud de conexión y la redirigiera a una dirección IP física. Estas soluciones propietarias de balanceo de carga mejoraron la escalabilidad, la previsibilidad y la alta disponibilidad. El verdadero desafío era la comunicación constante entre los miembros del clúster. Más servidores significaban más comunicación entre servidores y utilización del procesador. Esto aumentó el tráfico de red y eventualmente impactó el tráfico de los usuarios finales. Luego vino la era del hardware de balanceo de carga basado en red. Estos eran esencialmente dispositivos neutrales a la aplicación ubicados fuera del servidor de aplicaciones. Utilizaban la traducción de direcciones de red (NAT) bidireccional para redirigir a los usuarios desde direcciones de servidores virtuales a los servidores reales más capaces. Los dispositivos basados en red también hicieron posible enmascarar la identidad del servidor de aplicaciones y sacar un servidor de línea para mantenimiento sin interrupción del usuario. Los ADCs que ves hoy provienen de estos balanceadores de carga basados en red. Después de comenzar como dispositivos de hardware, los ADCs rápidamente estuvieron disponibles tanto como máquinas virtuales como software. Los ADCs basados en software respondieron a picos de tráfico, aseguraron la seguridad y ofrecieron más flexibilidad. Los ADCs están incompletos sin la tecnología subyacente de balanceo de carga crucial para manejar la entrega de aplicaciones. Importancia del balanceo de carga Los sitios web de alto tráfico reciben millones de solicitudes de usuarios concurrentes para el retorno instantáneo de datos de aplicaciones. Esta carga de trabajo masiva, si no se controla, puede abrumar a un solo servidor. Un servidor sobrecargado puede fallar al entregar respuestas o volverse no disponible, resultando en pérdida de negocio. Aquí es donde entran los balanceadores de carga. Un balanceador de carga coordina con los servidores para una distribución eficiente de las solicitudes de los usuarios. Asegura que ningún servidor esté sobrecargado o no esté procesando ningún tráfico. Además, los dispositivos de balanceo de carga pueden detectar servidores que funcionan mal y redirigir el tráfico a servidores operativos. Algunos balanceadores de carga con algoritmos avanzados pueden incluso predecir si un servidor probablemente se sobrecargará pronto y enrutar el tráfico en consecuencia. Las empresas que reciben un tráfico masivo tienen diferentes partes interesadas, así como clientes que visitan sus aplicaciones o sitios web. La capacidad de soportar esta demanda creciente es clave para el continuo patrocinio de las partes interesadas y los clientes. Por eso las empresas agregan balanceadores de carga a su infraestructura en la nube para mejorar la disponibilidad, la capacidad de respuesta y la escalabilidad. Tipos de balanceadores de carga Los balanceadores de carga son principalmente responsables de gestionar el balanceo de carga del servidor (SLB). Dependiendo de sus capacidades, también pueden ofrecer funcionalidades adicionales: seguridad, autenticación y almacenamiento geográfico. Estas funciones variadas, junto con las configuraciones, ayudan a categorizar los balanceadores de carga en siete tipos. 1. Balanceador de carga de red (NLB) Un balanceador de carga de red distribuye el tráfico basado en variables de red: IP de origen, IP de destino, puerto de origen, puerto de destino y protocolo IP. También se le conoce como balanceador de carga de capa 4 (L4) ya que trabaja en la cuarta capa del modelo de interconexión de sistemas abiertos (OSI). Un balanceador de carga de red no considera parámetros a nivel de aplicación como el tipo de contenido, datos de cookies, encabezados personalizados, ubicación del usuario o comportamiento de la aplicación. Es sin contexto y dirige el tráfico basado en la información de la capa de red contenida en los paquetes. 2. Balanceador de carga de aplicación (ALB) Un balanceador de carga de aplicación distribuye las solicitudes entrantes basadas en múltiples variables a nivel de aplicación. También se le conoce como balanceador de carga de capa 7 (L7) porque ocupa el nivel más alto en el modelo OSI. Un balanceador de carga de aplicación es consciente del contenido. Toma decisiones de balanceo de carga sobre elementos de carga útil de contenido como el localizador uniforme de recursos (URL), el encabezado del protocolo de transferencia de hipertexto (HTTP) y la capa de sockets seguros (SSL). Esta conciencia permite a un balanceador de carga de aplicación controlar el tráfico del servidor según el comportamiento y uso de la aplicación. 3. Balanceador de carga de servidor global (GSLB) Un balanceador de carga de servidor global o balanceador de carga de múltiples sitios utiliza tecnología DNS dinámica para distribuir el tráfico a través de servidores en diferentes ubicaciones. El balanceo de carga de servidor global actúa como un proxy DNS y utiliza algoritmos de balanceo de carga en tiempo real para responder. Maximiza el rendimiento y minimiza la latencia al permitir que los usuarios se conecten a un servidor geográficamente más cercano a ellos. Además del balanceo de carga, monitorea la salud del servidor a través de configuraciones y facilita la recuperación en caso de desastre del servidor. 4. Dispositivo de balanceo de carga de hardware (HLD) Un dispositivo de balanceo de carga de hardware es un dispositivo físico ubicado en las instalaciones que enruta el tráfico web a diferentes servidores. Generalmente se implementa en la capa de transporte (L4) y la capa de aplicación (L7) del modelo OSI. Los HLDs ya sea que aleatoricen la distribución del tráfico o consideren varios factores como la conexión del servidor disponible, la utilización de recursos y la potencia de procesamiento del servidor. Estos balanceadores de carga no tienen dependencias, y puedes instalarlos en centros de datos. A pesar de manejar un gran volumen de tráfico, los HLDs ofrecen flexibilidad limitada y son costosos. 5. Balanceador de carga de software (SLB) Un balanceador de carga de software utiliza uno o más algoritmos de programación para distribuir las solicitudes entrantes a través de los servidores. Los SLBs son flexibles, y puedes integrarlos fácilmente en soluciones de orquestación de virtualización. Dado que los SLBs se ejecutan en hardware de uso común, también son menos costosos. 6. Balanceador de carga virtual (VLB) Un balanceador de carga virtual es un balanceador de carga de hardware que funciona en una máquina virtual. Los VLBs utilizan software de controlador de entrega de aplicaciones virtualizadas para distribuir la carga de tráfico de red. Las grandes organizaciones con picos de tráfico constantes a menudo utilizan estos balanceadores de carga. Los desafíos comunes de los VLBs incluyen habilidades de automatización limitadas, menos escalabilidad y una falta de gestión centralizada. 7. Balanceador de carga de puerta de enlace (GLB) Un balanceador de carga de puerta de enlace despliega, escala y gestiona dispositivos virtuales como firewalls, sistemas de inspección profunda de paquetes y sistemas de prevención de intrusiones. Este balanceador de carga utiliza un punto de entrada y salida único de puerta de enlace de red para distribuir el tráfico. Un GLB opera en la tercera capa del modelo OSI. ¿Cómo funciona un balanceador de carga? Un balanceador de carga generalmente se sitúa entre un cliente y los hosts que proporcionan servicios al cliente. Supongamos que un balanceador de carga está conectado a un servidor virtual y un clúster de puntos de servicio. También está conectado a hosts para procesar el tráfico de retorno al cliente. Así es como funciona este balanceador de carga durante una transacción: - Intento de conexión: Un cliente intenta conectarse a servicios detrás de un balanceador de carga. - Aceptación de conexión: El balanceador de carga acepta la solicitud entrante. Elige el host más adecuado pero enruta la solicitud solo después de cambiar la IP de destino basada en los servicios del host seleccionado. - Respuesta del host: El host acepta la conexión y responde al cliente a través del balanceador de carga. - Intercepción del paquete de retorno: El balanceador de carga intercepta el paquete de retorno y cambia la IP de origen a la IP del servidor virtual antes de reenviar el paquete al cliente. - Recepción del paquete de retorno: El cliente recibe el paquete de retorno y continúa haciendo otras solicitudes. Algoritmos de balanceo de carga La eficiencia del balanceo de carga proviene de los algoritmos de balanceo de carga. Un algoritmo de balanceo de carga es una lógica que un balanceador de carga utiliza para procesar paquetes de datos entrantes y distribuir cargas entre servidores. Seleccionar el algoritmo correcto es clave para la fiabilidad, el rendimiento y la redundancia. Los algoritmos de balanceo de carga analizan el tráfico entrante y utilizan varios parámetros para distribuirlo. Basados en estos parámetros, los algoritmos de balanceo de carga se dividen en dos tipos: estáticos y dinámicos. Algoritmo de balanceo de carga estático Un algoritmo de balanceo de carga estático distribuye todo el tráfico de manera uniforme entre los servidores. Es estático porque no considera el estado del sistema actual para el cambio de carga. Este algoritmo enruta el tráfico basado en el conocimiento de los recursos del servidor. Además, un algoritmo de balanceo de carga estático requiere que las tareas de balanceo de carga se realicen exclusivamente. Otros dispositivos no pueden realizar estas tareas. Este algoritmo es ideal para sistemas con bajas variaciones de carga. A continuación se presentan algunos de los algoritmos de balanceo de carga estáticos más utilizados. Round-robin El balanceo de carga round-robin es uno de los algoritmos más simples y ampliamente utilizados para distribuir solicitudes entrantes a los servidores. Recorre una lista de servidores y reenvía una solicitud de cliente a cada servidor en la lista. Al final de una lista, repite el mismo proceso hasta que todas las solicitudes se distribuyen. El algoritmo round-robin asume que todos los servidores están disponibles con la misma capacidad de balanceo de carga. Dos variantes del algoritmo round-robin son: 1. Round-robin ponderado: El round-robin ponderado es una configuración avanzada del round-robin. Asigna un peso a cada servidor que generalmente denota la capacidad de manejo de carga de un servidor. Cuanto mayor sea el peso, más solicitudes recibe un servidor. Supongamos que dos servidores, X e Y, tienen pesos 2 y 1, respectivamente. Un balanceador de carga distribuirá dos solicitudes a X por cada solicitud que envíe a Y. 2. Round-robin dinámico: Un algoritmo round-robin dinámico asigna dinámicamente un peso a cada servidor. Este peso varía dependiendo de la carga actual y la capacidad ociosa de un servidor. Hash de IP de origen El algoritmo de balanceo de carga de hash de IP de origen genera una clave hash combinando las direcciones IP de origen y destino. Cada clave hash es única para un servidor específico y asigna solicitudes solo a ese servidor. Esta clave puede regenerarse y asegura que un cliente se dirija al mismo servidor si una sesión falla. Estático aleatorio Un algoritmo de balanceo de carga estático aleatorio asigna tareas a los servidores de manera aleatoria. Incluso puede calcular una permutación aleatoria si conoce el número de tareas de antemano. Dado que los procesadores ya conocen las tareas asignadas a ellos, un servidor no necesita un maestro de distribución en tales casos. Este algoritmo funciona bien para un tamaño de tarea mínimo. Gestor central El algoritmo de gestor central distribuye la carga de trabajo con un nodo central como coordinador, eligiendo el procesador con la menor carga. Tener información de carga en todos los servidores ayuda al gestor a seleccionar el procesador menos cargado. Este algoritmo utiliza mucha comunicación entre procesos, lo que puede convertirse rápidamente en un cuello de botella. Umbral El algoritmo de umbral asigna el tráfico entrante a nuevos servidores. Los servidores se seleccionan localmente, eliminando la necesidad de comunicarse a través de mensajes remotos. Cada servidor mantiene una copia de la carga del procesador categorizada en tres niveles: 1. Subcargado: carga < tunder 2. Medio: tunder ≤ carga ≤ tupper 3. Sobre cargado: carga > tupper Algoritmo de balanceo de carga dinámico Un algoritmo de balanceo de carga dinámico toma decisiones de balanceo de carga basadas en la información de rendimiento del nodo. Este algoritmo distribuye la carga de trabajo en tiempo de ejecución y encuentra la carga designada apropiada en el servidor más ligero de una red. Los algoritmos de balanceo de carga dinámicos suelen ser complejos pero ofrecen mejor rendimiento y tolerancia. Los algoritmos de balanceo de carga dinámicos más utilizados son: Conexión mínima Este algoritmo de balanceo de carga distribuye las solicitudes de los clientes a los servidores con el menor número de conexiones activas en el momento de recibir una nueva solicitud. Para conexiones de larga duración, el algoritmo de conexión mínima considera la carga de conexión activa mientras distribuye las solicitudes. Conexión mínima ponderada La conexión mínima ponderada, una configuración avanzada del algoritmo de conexión mínima, utiliza el peso del servidor y las conexiones activas para distribuir las solicitudes de los clientes. Una vez que un administrador asigna un peso a cada servidor basado en su capacidad de manejo de tráfico, la conexión mínima ponderada considera varias características del servidor de aplicaciones para la distribución de carga. Este algoritmo requiere más tiempo de computación pero asegura una distribución eficiente del tráfico. Tiempo de respuesta ponderado Este algoritmo de balanceo de carga aprovecha el tiempo de respuesta de los servidores de aplicaciones para la distribución de carga. Cuanto más rápido sea la respuesta, más rápido un servidor recibe la siguiente solicitud. Este algoritmo calcula los pesos del servidor de aplicaciones conectando el tiempo de respuesta a una verificación de salud. Basado en recursos (adaptativo) Con este algoritmo, los recursos disponibles para cada servidor impulsan las decisiones de distribución de carga. Cada servidor contiene un agente o software especializado que mide las métricas de CPU y memoria disponibles. Este agente informa al balanceador de carga para una distribución eficiente de solicitudes. Otro algoritmo basado en recursos que utiliza controladores de redes definidas por software (SDN) y conocimiento de la capa de red para decisiones de distribución de tráfico es un algoritmo de carga basado en recursos (SDN adaptativo). Los algoritmos de balanceo de carga dinámicos pueden parecer superar a los estáticos, pero son más complejos ya que tienen en cuenta el estado actual del sistema. Esta complejidad a menudo lleva a sobrecarga y decisiones de balanceo de carga deficientes. Por eso es crucial obtener una imagen completa de un mecanismo de balanceo de carga antes de elegir un balanceador de carga. Beneficios del balanceador de carga Las aplicaciones o recursos web no responsivos no solo son frustrantes para los usuarios, sino que también afectan el potencial de negocio. El balanceo de carga te ayuda a optimizar el uso de recursos, el tiempo de respuesta y la entrega de datos en entornos de alto tráfico. A continuación se presentan algunos de los principales beneficios de un balanceador de carga. Alto rendimiento Un balanceador de carga reduce la velocidad de carga y los tiempos de respuesta al enrutar el tráfico entrante a servidores capaces. El balanceo de carga inteligente reduce la carga en los servidores, optimiza la experiencia del usuario y mejora el rendimiento de tu sitio web o aplicación. Así es como un balanceador de carga mejora el rendimiento del servidor: - Descarga de SSL: Elimina la sobrecarga de los servidores y hace que más recursos estén disponibles para tu aplicación web o recursos - Compresión de tráfico: Comprime el tráfico del sitio web para optimizar la experiencia del usuario - Almacenamiento en caché de tráfico: Entrega contenido rápidamente con copias retenidas de elementos web frecuentemente accedidos - Soporte HTTP 2.0: Ayuda a comunicarse con los clientes y cargar sitios web más rápido Redundancia Un servidor que funciona mal interrumpe los servicios. Los balanceadores de carga utilizan redundancia incorporada para manejar fallos de hardware y mitigar su impacto en el tiempo de actividad del sitio web. Redirigen automáticamente las solicitudes de los clientes a servidores en funcionamiento durante una falla del servidor. Así es como los balanceadores de carga aseguran aún más la redundancia: - Servicio continuo: Utiliza servidores en funcionamiento para enrutar las solicitudes de los clientes cuando un servidor falla - Evitar servidores ocupados: Identifica servidores ocupados y redirige el tráfico a servidores menos ocupados - Sitio altamente disponible: Despliega balanceadores de carga en pares para que uno pueda hacerse cargo cuando el otro falla - Continuidad del negocio: Detecta la interrupción del sitio y redirige a los visitantes a un sitio web alternativo preestablecido Escalabilidad Los picos de tráfico pueden convertirse en una pesadilla sin un mecanismo para gestionar la carga creciente. Un balanceador de carga agrega un servidor físico o virtual en el proceso de distribución de tráfico para acomodar esta demanda. La escalabilidad asegura un servicio ininterrumpido. Así es como la escalabilidad ayuda: - Continuidad del negocio: Redirige el tráfico a sitios alternativos durante interrupciones del sitio - Capacidad del sitio web: Maneja picos de tráfico con servidores adicionales - Autoescalado en la nube: Satisface las demandas variables de sitios web alojados en la nube - Adición de capacidad: Evita actualizaciones disruptivas Seguridad Los balanceadores de carga también protegen los datos con capas adicionales de seguridad de red. Un balanceador de carga utiliza las siguientes características para mejorar la seguridad de tu sitio web o aplicación: - Firewall de aplicaciones web (WAF): Protege el sitio web o la aplicación de amenazas emergentes y ejecuta actualizaciones de reglas diarias - Autenticación de acceso de usuario: Protege los recursos web del acceso no autorizado - Detección de amenazas: Identifica y elimina el tráfico de denegación de servicio (DDoS) Desafíos del balanceador de carga Algunos de los desafíos más comunes con un balanceador de carga provienen de opciones de configuración inadecuadas. Algunos de estos desafíos son: - Cierre de conexiones silenciosas: Una configuración predeterminada en los balanceadores de carga cierra las conexiones de protocolo de control de transmisión (TCP) que están en silencio por un tiempo. Aunque esto es adecuado para balanceadores de carga que manejan conexiones de servidores web, el cierre automático puede causar que los intentos de reconexión de un cliente fallen. - Pooling de conexiones: Los balanceadores de carga a menudo vienen con una función de pooling de conexiones que mantiene viva la conexión servidor-balanceador de carga. Múltiples clientes utilizan estas conexiones. El problema con el pooling de conexiones es que una vez que la conexión multiplexada se cierra, todas las conexiones del lado del cliente también se cierran. - Conexión TCP costosa: Crear una nueva conexión TCP para cada solicitud es costoso y agrega tiempo al procesamiento de la solicitud. Estas nuevas conexiones también aumentan significativamente el tráfico entre el balanceador de carga y el servidor. Es mejor configurar un balanceador de carga para reutilizar conexiones TCP para solicitudes del mismo cliente. - Tiempo de espera de retransmisión TCP: Los balanceadores de carga que utilizan failover sufren de tiempo de espera de retransmisión TCP y causan largas latencias para los clientes. Esto se debe a que los servidores no disponibles mantienen abiertas las conexiones de los clientes existentes y almacenan datos en búfer antes de cerrarlas. Puedes evitar esto modificando el tiempo de espera de retransmisión TCP del servidor host o configurando un balanceador de carga para cerrar conexiones no saludables. Proxy inverso vs. balanceador de carga vs. CDN vs. clúster Un proxy inverso acepta una solicitud de cliente y la reenvía a un servidor que puede cumplir con la solicitud. Por otro lado, un balanceador de carga distribuye las solicitudes de los clientes entre un grupo de servidores. Ambos: - Mejoran la eficiencia - Actúan como dispositivos dedicados y diseñados para un propósito - Devuelven la respuesta del servidor al cliente - Contribuyen a una arquitectura de computación cliente-servidor - Median la comunicación entre cliente y servidor La única diferencia entre el proxy inverso y el balanceador de carga es que el primero se utiliza para un solo servidor web o de aplicaciones y el segundo para múltiples servidores. Además de ofrecer mayor seguridad, los balanceadores de carga ofrecen aceleración web que reduce el tiempo de respuesta. Una red de entrega de contenido (CDN) es una red de servidores en múltiples ubicaciones geográficas. La CDN entrega datos a los usuarios desde la ubicación más cercana a ellos. Las CDNs y los balanceadores de carga cumplen roles similares: distribución eficiente de datos y maximización del tiempo de actividad. La principal diferencia entre las CDNs y los balanceadores de carga es que las CDNs distribuyen contenido en un área geográfica amplia, mientras que los balanceadores de carga distribuyen el tráfico de clientes a través de una red de servidores. Clustering convierte múltiples servidores en un clúster. Estos servidores conectados actúan como un solo servidor y comparten una dirección IP común para mejorar el rendimiento y la resiliencia. Aquí están las diferencias clave entre el balanceo de carga y el clustering: - Tipo de servidor: El balanceo de carga puede trabajar con diferentes tipos de servidores, mientras que el clustering necesita servidores idénticos dentro de un clúster. - Gestión: Un controlador puede gestionar clústeres, pero el balanceo de carga requiere experiencia adicional en redes. - Operaciones: Los balanceadores de carga no dependen de los servidores de destino. Los clústeres dependen de agentes de nodo y gestores para la comunicación. Una organización en crecimiento tiene que identificar formas de satisfacer las necesidades de servidores en evolución. La elección de la tecnología varía con el problema que estás tratando de resolver. Independientemente del instrumento que elijas, debe ser económico y flexible para cambiar. Para resumir, deberías usar: - Proxy inverso para acelerar el flujo de tráfico almacenando en caché contenido comúnmente utilizado y comprimiendo datos (entrantes y salientes) - Balanceador de carga para mejorar el rendimiento de la aplicación aumentando la capacidad y fiabilidad de la aplicación - CDN para entregar contenido rápidamente a los usuarios con una red de servidores ubicados en diferentes geografías - Clustering para asegurar alta disponibilidad permitiendo que otros servidores tomen el control en caso de una interrupción Casos de uso del balanceador de carga Un balanceador de carga distribuye principalmente el tráfico entrante entre servidores de respaldo, pero también puede hacer mucho más. Algunos de los casos de uso notables de un balanceador de carga son: - Escalado horizontal: Escalar el tráfico es una preocupación común para las organizaciones en crecimiento que ofrecen servicios web. Hay dos tipos de escalado: horizontal (distribuir el tráfico entre múltiples servidores) y vertical (mover aplicaciones a un servidor más potente para satisfacer demandas crecientes). Los balanceadores de carga facilitan el escalado horizontal y hacen que tu sitio web o aplicación sea más confiable. - Alta disponibilidad: La alta disponibilidad es clave para reducir el tiempo de inactividad y optimizar la fiabilidad del sistema. Los balanceadores de carga eliminan puntos únicos de falla y te ayudan a lograr alta disponibilidad. Identifican automáticamente servidores no funcionales con verificaciones de salud y los eliminan para una mejor disponibilidad. - Despliegues azul/verde: Supongamos que quieres probar tu software a fondo antes de desplegarlo en la infraestructura de producción. Primero, necesitas asegurarte de que todo funcione antes del despliegue. Gracias a la técnica de despliegue azul/verde, puedes realizar fácilmente estas pruebas con un balanceador de carga. También puedes volver a la versión anterior si un despliegue falla. - Despliegues canarios: Los despliegues canarios prueban una nueva versión de una aplicación para un subconjunto de usuarios y actualizan el resto del grupo de servidores en consecuencia. Si ves demasiados errores después de agregar un servidor canario al grupo, puedes abortar el despliegue. Cuando no hay errores, puedes continuar desplegando actualizaciones al resto del grupo. - Despliegues A/B: Los despliegues A/B te ayudan a tomar decisiones informadas de marketing y desarrollo. Los balanceadores de carga te permiten agregar servidores B al grupo de servidores A existente. Una vez hecho esto, puedes obtener información significativa de la infraestructura de monitoreo y registro. Software de balanceo de carga El balanceo de carga eficiente depende de elegir el software correcto. Si estás buscando manejar tráfico de alto volumen distribuyendo solicitudes de clientes a través de servidores entrantes, deja que el software de balanceo de carga haga el trabajo pesado. Para ser incluido en esta categoría, un producto de software debe: - Monitorear el tráfico web y distribuir recursos - Escalar cargas de trabajo de infraestructura para equilibrar el tráfico - Integrarse con o proporcionar servicios de failover y respaldo *A continuación se presentan las cinco principales soluciones de software de balanceo de carga líderes del Informe Grid® de Invierno 2021 de G2. Algunas reseñas pueden estar editadas para mayor claridad. 1. F5 NGINX F5 NGINX ofrece un proxy inverso y balanceador de carga nativo de la nube y fácil de usar. Viene con capacidades variadas como controles de seguridad, recuperación del sistema DNS, monitoreo avanzado, persistencia de sesión, contenedores de Kubernetes y una interfaz de programación de aplicaciones (API) de estado representacional (REST). ¿Qué les gusta a los usuarios? Servidor HTTPS simple, fácil de usar y potente. El balanceo de carga es uno de los mejores que he visto. Actualmente solo uso la versión gratuita, pero hace todo lo que necesito que haga. Es ligero y no usa muchos recursos. - Reseña de F5 NGINX, Joseph S. ¿Qué no les gusta a los usuarios? Menos soporte comunitario y documentación que otros servidores web como Apache, pero probablemente más que suficiente dependiendo de tu experiencia y caso de uso. No tantos módulos o extensiones como Apache. Podría ser difícil entender cómo configurarlo inicialmente. Pero una vez que lo entiendes, es bastante simple de usar. - Reseña de F5 NGINX, Amogh H. 2. Kemp LoadMaster Kemp LoadMaster ofrece soluciones de balanceo de carga para un alto rendimiento y entrega segura de cargas de trabajo de aplicaciones. Es conocido por despliegues simplificados, licencias flexibles y soporte técnico de primera categoría. ¿Qué les gusta a los usuarios? El producto LoadMaster es increíblemente fácil de usar para todas las funciones básicas. Hemos logrado configurar fácilmente reglas de balanceo de carga para sistemas web e internos, pero hay mucho más que puede hacer como producto de balanceo de carga. Estas características pueden ser bastante complicadas de configurar, pero el soporte es insuperable. Así que, cualquier problema al configurar un servicio, envía un ticket, y en una hora, alguien regresa, y las sesiones remotas resuelven los problemas. No hay que esperar días para una respuesta. Esto es lo que realmente nos atrae a renovar cada año: te das cuenta de lo importante que es un buen soporte. Configurar los LoadMasters desde una imagen de VM lleva unos 15 minutos para una configuración HA. - Reseña de Kemp LoadMaster, Daniel S. ¿Qué no les gusta a los usuarios? Interfaz web. Es poco pulida y no intuitiva. Por ejemplo, los servidores reales no se configuran en la sección "Servidores Reales". Es difícil encontrar la configuración, y la configuración de cosas relacionadas está dispersa en varias secciones. Colocación inconsistente de los botones, nombres de campos inconsistentes: a veces todo en mayúsculas como "Tiempo de espera de conectividad", a veces en mayúsculas y minúsculas como "Intentos de reintento" justo debajo. Falta de soporte para Duo 2FA. Gran parte de la documentación en línea y los tutoriales están desactualizados. - Reseña de Kemp LoadMaster, Peter K. 3. Azure Traffic Manager Azure Traffic Manager ofrece un servicio de balanceo de carga basado en la nube diseñado para asegurar alta disponibilidad, aumentar la capacidad de respuesta, proporcionar información basada en el uso y combinar sistemas en las instalaciones y en la nube. ¿Qué les gusta a los usuarios? Los gestores de tráfico permiten redirigir a los usuarios a puntos finales apropiados basados en diferentes configuraciones. Lo estamos usando para enrutar a los usuarios a versiones nacionales del sitio, dependiendo de la ubicación de los usuarios. Permite a los usuarios ver información en su idioma nativo y minimiza el tiempo de respuesta de las páginas web porque los sitios nacionales están ubicados en los centros de datos más cercanos. La característica principal es que todo el enrutamiento se realiza en segundo plano, y todos los usuarios pueden usar una sola URL para acceder al sitio independientemente de su ubicación. La segunda gran característica es la opción de failover, por lo que el sitio permanece disponible con la misma URL independientemente de su ubicación actual. Lo estamos usando para sitios en las instalaciones donde se configuró Azure Site Recovery para servidores. La URL permanece activa incluso después del failover a Azure. - Reseña de Azure Traffic Manager, Arthur S. ¿Qué no les gusta a los usuarios? Aumenta el tiempo de respuesta inicial para el sitio debido a las actividades de enrutamiento. Incluso si los usuarios son redirigidos al sitio más cercano, la solicitud inicial irá a la región de Azure donde está desplegado el gestor de tráfico. - Reseña de Azure Traffic Manager, Michael L. 4. AWS Elastic Load Balancing AWS Elastic Load Balancing distribuye el tráfico de aplicaciones entrantes para mejorar la escalabilidad de la aplicación. Se sabe que ofrece alta disponibilidad, seguridad robusta y características de escalado automático. ¿Qué les gusta a los usuarios? ELB es altamente disponible y permite el enrutamiento de tráfico a otros servidores instantáneamente incluso si el principal está caído. No es cobrable. ELB funciona bien con el autoescalado de AWS (ayuda a escalar hacia arriba/abajo en tiempo de ejecución sin ningún impacto). Podemos integrar ELB con Route53 y cloudfront para servir la solicitud a tiempo desde diferentes ubicaciones para evitar la latencia. Es seguro y fácil de instalar también. - Reseña de AWS Elastic Load Balancing, Anshu K. ¿Qué no les gusta a los usuarios? Las verificaciones de salud tardan un poco más de lo esperado a veces y esto puede causar problemas si no configuras cuidadosamente la configuración de verificación de salud. - Reseña de AWS Elastic Load Balancing, Joey D. 5. Micro Focus Silk Performer Micro Focus Silk Performer optimiza el rendimiento de la aplicación con pruebas de carga y estrés realistas y potentes. Ofrece diagnósticos de extremo a extremo y permite que las aplicaciones toleren un uso aumentado. ¿Qué les gusta a los usuarios? Análisis de aplicaciones y la facilidad de lanzar cualquier tamaño requerido de pruebas de funcionalidad de carga máxima. Es fácil construir pruebas usando Micro Focus Silk Performer para mejorar la calidad de producción. - Reseña de Micro Focus Silk Performer, Debra M. ¿Qué no les gusta a los usuarios? La escritura de scripts fue difícil inicialmente. Muchas funciones parecen similares, pero es difícil evaluar la correcta. - Reseña de Micro Focus Silk Performer, Rajesh H. Mejora el tiempo de actividad y la distribución de carga Hoy en día, los DevOps necesitan asegurar que las aplicaciones satisfagan las crecientes demandas de tráfico con mínima interrupción del usuario. Aprovechan las capacidades de balanceo de carga como la distribución de carga de red, la mejora del tiempo de actividad, la detección de fallos de servidor y la minimización de la carga del servidor de respaldo para mantener el servidor funcional. Los balanceadores de carga son cruciales para la escalabilidad, disponibilidad y seguridad de las aplicaciones. ¿Buscas agregar balanceadores de carga a tu red? Descubre más sobre servidores privados virtuales y si deberías elegirlos para almacenar recursos.
¿Quieres aprender más sobre Software de Balanceo de Carga? Explora los productos de Balanceo de carga.

Sudipto Paul
Sudipto Paul is an SEO content manager at G2. He’s been in SaaS content marketing for over five years, focusing on growing organic traffic through smart, data-driven SEO strategies. He holds an MBA from Liverpool John Moores University. You can find him on LinkedIn and say hi!