El equilibrio de carga es el proceso de distribución del 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 mucho tráfico y las aplicaciones de computación en la nube reciben millones de peticiones de usuarios todos los días, 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 servidores web a los consumidores sin demoras ni tiempo de inactividad.
El equilibrio de carga se puede implementar de varias 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 privados o proporcionados como un servicio gestionado en la nube (equilibrio de carga en la nube).
En cualquier caso, los equilibradores de carga funcionan mediando las solicitudes entrantes de los clientes en tiempo real y determinando qué servidores backend son más capaces de procesar esas solicitudes. Para evitar que un único servidor se sobrecargue, el equilibrador de carga envía solicitudes a cualquier cantidad de servidores disponibles en las instalaciones o alojados en granjas de servidores o centros de datos en la nube.
Una vez que el servidor asignado recibe la solicitud, responde al cliente mediante el equilibrador de carga. El equilibrador de carga completa entonces la conexión del servidor al cliente haciendo coincidir la dirección IP del cliente con la del servidor seleccionado. El cliente y el servidor pueden entonces comunicarse y llevar a cabo las tareas solicitadas hasta que finalice la sesión.
Si se produce un pico en el tráfico de red, un equilibrador de carga puede poner en línea servidores adicionales para satisfacer la demanda. O, si hay una actividad de red nula, el equilibrador de carga puede reducir el grupo de servidores disponibles. También puede ayudar con el almacenamiento en caché de la red al enrutar el tráfico a los servidores de caché donde se almacenan temporalmente las solicitudes de usuarios anteriores.
Los equilibradores de carga realizan comprobaciones de estado en los servidores antes de enrutarlos. 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 manejar las cargas de tráfico de red más pesadas o ligeras. Se pueden agregar servidores físicos o virtuales según sea necesario, haciendo que la escalabilidad sea simple y automatizada.
Los equilibradores de carga pueden incluir funciones de seguridad como cifrado SSL, firewalls de aplicaciones web (WAF) y autenticación multifactor (MFA). También pueden incorporarse en 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 la defensa de riesgos de seguridad tales como los ataques de denegación de servicio distribuido (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 distintos 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 en este algoritmo también se le asigna un "peso". El peso determina qué servidores deben tener prioridad sobre otros para manejar las solicitudes entrantes. Un administrador decide cómo se pondera cada servidor en función de su capacidad y las necesidades de la red.
En este algoritmo, un cálculo simplifica (o aplica un hash) a 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 dirigir 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 conexiones y a mantener una carga uniforme en todos los servidores en todo momento.
Este algoritmo combina el método de conexión mínima con el tiempo de respuesta promedio del servidor más corto. 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, hay varios tipos de ellos, cada cual con que cumplen funciones específicas.
Los equilibradores de carga de red optimizan el tráfico y reducen la latencia en redes locales y de área 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 el rendimiento suficiente para satisfacer la demanda del usuario.
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 satisfacer solicitudes específicas de forma rápida y confiable.
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 múltiples 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 la carga del servidor global equilibre un componente valioso de la recuperación después de un desastre.
Las soluciones de redes de IBM ofrecen conectividad centrada en aplicaciones y de alto rendimiento, que las hace ideales para las empresas digitales actuales.
Proteja su infraestructura en la nube y servidores de actividades maliciosas con la seguridad de red de IBM Cloud.
IBM Cloud es una plataforma en la nube diseñada para industrias reguladas, que proporciona soluciones abiertas, seguras, híbridas y preparadas para la IA.