El equilibrio de carga es el proceso de distribuir el tráfico de red de manera eficiente entre varios servidores para optimizar la disponibilidad de las aplicaciones y garantizar una experiencia positiva para el usuario final.
Dado que los sitios web de alto tráfico y las aplicaciones de computación en la nube reciben millones de solicitudes de usuario cada día, el equilibrio de carga es una capacidad esencial para la entrega de aplicaciones modernas. Por ejemplo, los sitios de comercio electrónico dependen del equilibrio de carga para garantizar que las aplicaciones web puedan entregar datos, imágenes, videos y precios desde los servidores web a los consumidores sin demora ni tiempo de inactividad.
El equilibrio de carga se puede implementar de dos maneras. Los equilibradores de carga de hardware son dispositivos físicos que se instalan y mantienen en las instalaciones. Los equilibradores de carga de software son aplicaciones instaladas en servidores de propiedad privada o entregadas como un servicio en la nube administrado (equilibrio de carga en la nube).
En cualquier caso, los balanceadores de carga funcionan mediando las solicitudes entrantes de los clientes en tiempo real y determinando qué servidores backend son los más capaces de procesar esas solicitudes. Para evitar que un único servidor se sobrecargue, el equilibrador de carga enruta las solicitudes a cualquier número de servidores disponibles en las instalaciones o alojados en conjuntos de servidores o centros de datos en la nube.
Una vez que el servidor asignado recibe la solicitud, responde al cliente a través del equilibrador de carga. A continuación, el equilibrador de carga completa la conexión de servidor a cliente haciendo coincidir la dirección IP del cliente con la del servidor seleccionado. El cliente y el servidor pueden comunicarse y llevar a cabo las tareas solicitadas hasta que se complete la sesión.
Si se produce un pico en el tráfico de la red, un equilibrador de carga puede poner en línea servidores adicionales para satisfacer la demanda. O, si hay una actividad en la red, el equilibrador de carga puede reducir el grupo de servidores disponibles. También puede ayudar al almacenamiento en caché de la red dirigiendo el tráfico a servidores caché donde se almacenan temporalmente las peticiones anteriores de los usuarios.
Los equilibradores de carga realizan comprobaciones de estado de los servidores antes de enviarles solicitudes. Si un servidor está a punto de fallar, o está fuera de servicio por mantenimiento o actualizaciones, el equilibrio de carga redirige automáticamente la carga de trabajo a un servidor en funcionamiento para evitar interrupciones del servicio y mantener una alta disponibilidad.
El equilibrio de carga permite una infraestructura de alto rendimiento bajo demanda que puede gestionar las cargas de tráfico de red más pesadas o más ligeras. Los servidores físicos o virtuales se pueden añadir o quitar según sea necesario, lo que simplifica y automatiza la escalabilidad.
Los equilibradores de carga pueden incluir características de seguridad como cifrado SSL, cortafuegos de aplicaciones web (WAF) y autenticación multifactor (MFA). También se pueden incorporar a los controladores de entrega de aplicaciones (ADC) para mejorar la seguridad de las aplicaciones. Al enrutar o descargar de forma segura el tráfico de red, el equilibrio de carga puede ayudar a defenderse de los riesgos de seguridad, como los ataques distribuidos de denegación de servicio (DDoS).
El método para enrutar una solicitud a un servidor determinado se define mediante un algoritmo de equilibrio de carga. Los algoritmos de equilibrio de carga proporcionan diferentes capacidades y beneficios para satisfacer diferentes casos de uso.
Este algoritmo utiliza el sistema de nombres de dominio (DNS) para asignar secuencialmente solicitudes a cada servidor en una rotación continua. Es el método de equilibrio de carga más básico, ya que utiliza solo el nombre de cada servidor para determinar cuál recibirá la próxima solicitud entrante.
Además de su nombre DNS, a cada servidor de este algoritmo también se le asigna un "peso". El peso determina qué servidores deben tener prioridad sobre otros para gestionar las solicitudes entrantes. Un administrador decide cómo se ponderará cada servidor en función de su capacidad y las necesidades de la red.
En este algoritmo, un cálculo simplifica (o hash) la dirección IP de la solicitud entrante en un valor más pequeño llamado clave hash. Esta clave hash única (que representa la dirección IP del usuario) se utiliza como base para decidir cómo enrutar la solicitud a un servidor específico.
Como su nombre indica, este algoritmo da prioridad al servidor con menos conexiones activas cuando se recibe una nueva solicitud de cliente. Este método ayuda a evitar que los servidores se sobrecarguen con las conexiones y a mantener una carga consistente en todos los servidores en todo momento.
Este algoritmo combina el método de menor conexión con el menor tiempo medio de respuesta del servidor. Se evalúa tanto el número de conexiones como el tiempo que tarda un servidor en realizar solicitudes y enviar una respuesta. El servidor más rápido con menos conexiones activas recibirá la solicitud entrante.
Si bien el propósito principal de cualquier equilibrador de carga es distribuir el tráfico, existen varios tipos de equilibradores de carga que cumplen funciones específicas.
Los equilibradores de carga de red optimizan el tráfico y reducen la latencia en las redes de área local y amplia. Utilizan información de red como direcciones IP y puertos de destino, junto con protocolos TCP y UDP, para enrutar el tráfico de red y proporcionar suficiente rendimiento para satisfacer la demanda de los usuarios.
Estos equilibradores de carga utilizan el contenido de la aplicación, como URL, sesiones SSL y encabezados HTTP, para enrutar el tráfico de solicitudes de API. Debido a que existen funciones duplicadas en varios servidores de aplicaciones, examinar el contenido a nivel de aplicación ayuda a determinar qué servidores pueden atender solicitudes específicas de forma rápida y fiable.
Con el auge de la virtualización y la tecnología VMware, ahora se utilizan equilibradores de carga virtuales para optimizar el tráfico entre servidores, máquinas virtuales y contenedores. Las herramientas de orquestación de contenedores de código abierto, como Kubernetes, ofrecen capacidades de equilibrio de carga virtual para enrutar las solicitudes entre nodos de contenedores en un clúster.
Este tipo de equilibrador de carga enruta el tráfico a servidores en varias ubicaciones geográficas para garantizar la disponibilidad de las aplicaciones. Las solicitudes de usuario se pueden asignar al servidor disponible más cercano, o si hay un error en el servidor, a otra ubicación con un servidor disponible. Esta capacidad de conmutación por error hace que el equilibrio de carga global de los servidores sea un componente valioso de la recuperación ante desastres.
IBM Cloud Pak for Network Automation es un Cloud Pak que permite automatizar y orquestar las operaciones de infraestructura de redes.
Las soluciones de redes en la nube de IBM proporcionan conectividad de alto rendimiento para potenciar sus aplicaciones y su negocio.
Consolide el soporte de los centros de datos con IBM Technology Lifecycle Services para redes en la nube y más.