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.
IBM Instana Observability ofrece a todos los usuarios de la empresa un acceso fácil a los datos que desean, con el contexto que necesitan para prevenir y solucionar problemas rápidamente.
Suscríbase al boletín de IBM
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 hay un aumento en el tráfico de red, un equilibrador de carga puede poner servidores adicionales en línea para mantenerse al día con 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.
Todos contra todos
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.
Todos contra todos ponderado
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 manejar las solicitudes entrantes. Un administrador decide cómo se ponderará cada servidor según su capacidad y las necesidades de la red.
Hash de IP
En este algoritmo, un cálculo simplifica (o hashea) 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.
Menos conexiones
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.
Tiempo de respuesta mínimo
Este algoritmo combina el método de menor conexión con el menor tiempo de respuesta promedio 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, hay varios tipos de ellos, cada cual con que cumplen funciones específicas.
Equilibradores de carga de red
Los equilibradores de carga de red optimizan el tráfico y reducen la latencia en las 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.
Equilibradores de carga de aplicaciones
Estos equilibradores de carga utilizan contenido de la aplicación, como direcciones 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.
Equilibradores de carga virtuales
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.
Equilibradores de carga de servidor globales
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 la carga del servidor global equilibre un componente valioso de la recuperación después de un desastre.
IBM Cloud load balancers enable you to balance traffic among servers to improve uptime and performance.
Descubra la plataforma líder de observabilidad empresarial para nubes híbridas. Mejore la gestión del rendimiento de las aplicaciones y acelere los procesos CI/CD sin importar dónde residan las aplicaciones.
Haga coincidir continuamente y con precisión la demanda de aplicaciones con los recursos de la nube en tiempo real y confíe en su asignación de costos.
Explore cómo la computación en la nube transforma la infraestructura de TI en un servicio, permitiéndole "conectarse" a los recursos informáticos y aplicaciones a través de Internet.
Descubra cómo la plataforma de orquestación de contenedores de código abierto Kubernetes automatiza la implementación, la administración y el escalado de aplicaciones en contenedores.