{"id":88465,"date":"2022-08-11T17:30:09","date_gmt":"2022-08-11T17:30:09","guid":{"rendered":"https:\/\/magazineoffice.com\/que-son-los-balanceadores-de-carga-como-distribuir-eficazmente-el-trafico-entrante\/"},"modified":"2022-08-11T17:30:11","modified_gmt":"2022-08-11T17:30:11","slug":"que-son-los-balanceadores-de-carga-como-distribuir-eficazmente-el-trafico-entrante","status":"publish","type":"post","link":"https:\/\/magazineoffice.com\/que-son-los-balanceadores-de-carga-como-distribuir-eficazmente-el-trafico-entrante\/","title":{"rendered":"\u00bfQu\u00e9 son los balanceadores de carga? C\u00f3mo distribuir eficazmente el tr\u00e1fico entrante"},"content":{"rendered":"
\n<\/p>\n
Los balanceadores de carga son componentes de infraestructura que distribuyen el tr\u00e1fico de red entrante entre m\u00faltiples servidores backend. Mejoran la capacidad y agregan redundancia al mantener los servicios accesibles si uno de sus servidores falla.<\/p>\n
Los balanceadores de carga act\u00faan como la puerta de enlace p\u00fablica a su aplicaci\u00f3n. Est\u00e1n especializados en su funci\u00f3n, por lo que pueden optimizarse en gran medida para maximizar el rendimiento del tr\u00e1fico. Los balanceadores de carga generalmente se pueden configurar con varios tipos de algoritmos de enrutamiento para cumplir con los requisitos de su aplicaci\u00f3n.<\/p>\n
En este art\u00edculo, exploraremos qu\u00e9 son los balanceadores de carga, c\u00f3mo funcionan y algunas de las complicaciones que pueden causar. Tambi\u00e9n explicaremos las diferencias entre los algoritmos de equilibrio de carga m\u00e1s comunes.<\/p>\n
Los balanceadores de carga son responsables de proporcionar un proxy inverso frente a los servidores de su aplicaci\u00f3n. Todos los clientes se conectan a este \u00fanico proxy en lugar de a las instancias de back-end individuales. El balanceador de carga es responsable de seleccionar un servidor para manejar cada solicitud. Esto ocurre de forma invisible para el cliente externo.<\/p>\n
Est\u00e1n disponibles implementaciones de balanceador de carga basadas en hardware y software. Por el lado del software, la mayor\u00eda de los servidores web, como Apache y NGINX, son capaces de cumplir la funci\u00f3n. Los balanceadores de carga de tipo hardware se implementan como componentes de infraestructura independientes de su proveedor de alojamiento.<\/p>\n
Los balanceadores de carga generalmente monitorean el estado de las instancias en su grupo de servidores back-end. Los backends que se vuelven inestables dejan de recibir tr\u00e1fico nuevo, lo que reduce la inestabilidad del servicio y el tiempo de inactividad. De manera similar, los balanceadores de carga generalmente le permiten agregar nuevas instancias de back-end en cualquier momento, para que pueda escalar su servicio con capacidad adicional durante las horas pico.<\/p>\n
El objetivo principal de un balanceador de carga es maximizar el rendimiento y hacer el uso m\u00e1s eficiente de los recursos disponibles. Ser capaz de escalar horizontalmente a trav\u00e9s de servidores f\u00edsicos suele ser m\u00e1s efectivo que hacer crecer verticalmente un solo nodo con CPU o memoria adicional. El escalado horizontal le brinda m\u00e1s redundancia y capacidad, mientras que la sobrecarga incurrida por la capa del balanceador de carga es generalmente nominal.<\/p>\n
Aunque el objetivo del equilibrio de carga es siempre distribuir el tr\u00e1fico entre varios servidores, hay varias formas de lograrlo. Antes de analizar estrategias espec\u00edficas, es importante identificar los dos tipos fundamentales de algoritmo que puede seleccionar:<\/p>\n
Los sistemas de equilibrio est\u00e1tico suelen ser m\u00e1s f\u00e1ciles de configurar, probar e inspeccionar. El equilibrio din\u00e1mico es mucho m\u00e1s potente y suele ser la opci\u00f3n preferida para las aplicaciones de producci\u00f3n. Dentro de cada una de estas clases, hay varias estrategias de enrutamiento espec\u00edficas que puede elegir:<\/p>\n
Los balanceadores de carga pueden crear algunas complicaciones para su aplicaci\u00f3n. Uno de los m\u00e1s frecuentes es el desaf\u00edo de lograr sesiones de back-end pegajosas. Es com\u00fan que los sistemas mantengan el estado en el servidor y necesiten persistir entre las conexiones de los clientes.<\/p>\n
Puede mitigar esto utilizando el algoritmo de equilibrio hash o una opci\u00f3n similar basada en el cliente. Esto garantiza que las conexiones desde la misma direcci\u00f3n IP terminen en un servidor en particular. La mayor\u00eda de los balanceadores de carga tambi\u00e9n ofrecen una opci\u00f3n expl\u00edcita de sesiones fijas que busca un encabezado o cookie designado en una solicitud HTTP. Este valor se puede utilizar para dirigir solicitudes de forma coherente al mismo servidor despu\u00e9s de la conexi\u00f3n inicial del cliente.<\/p>\n
Los balanceadores de carga tambi\u00e9n pueden crear complejidad en torno a SSL. Muchas organizaciones configuran SSL para terminar en el balanceador de carga. Las conexiones entre el balanceador de carga y sus servidores back-end se realizan a trav\u00e9s de HTTP normal. Esto generalmente da como resultado una experiencia de configuraci\u00f3n m\u00e1s simple con demandas de mantenimiento reducidas.<\/p>\n
El uso de conexiones solo HTTP en la direcci\u00f3n de avance no siempre es aceptable para las cargas de trabajo cr\u00edticas para la seguridad. Los balanceadores de carga capaces de realizar transferencia SSL pueden enviar tr\u00e1fico directamente a sus servidores backend, sin descifrar primero los datos. Sin embargo, esto restringe la funcionalidad de enrutamiento que puede usar: como el balanceador de carga no puede descifrar las solicitudes entrantes, no podr\u00e1 realizar coincidencias basadas en atributos como encabezados y cookies.<\/p>\n
El equilibrio de carga a menudo se analiza en el contexto de las redes de Capa 4 (L4) y Capa 7 (L7). Estos t\u00e9rminos describen el punto en el que el balanceador de carga enruta el tr\u00e1fico dentro del ciclo de vida de una solicitud de red.<\/p>\n
Un recurso de capa 4 opera en el nivel de transporte de red. Estos equilibradores de carga toman decisiones de enrutamiento en funci\u00f3n de las caracter\u00edsticas del transporte de la solicitud, como el puerto TCP o UDP que se utiliz\u00f3. No se tienen en cuenta los datos espec\u00edficos de la solicitud.<\/p>\n
Un equilibrador de carga de capa 7 se encuentra junto a la capa de aplicaci\u00f3n. Estos balanceadores de carga pueden acceder a datos complejos dentro de la solicitud y usarlos para informar las reglas de enrutamiento espec\u00edficas de la carga de trabajo. Aqu\u00ed es donde puede tener lugar el equilibrio de carga que representa una ID de sesi\u00f3n en un encabezado HTTP o una cookie.<\/p>\n
El balanceo de carga de capa 7 es poderoso pero relativamente intensivo en recursos. Necesita analizar e inspeccionar el contenido de cada solicitud antes de que pueda pasarse a un backend. La naturaleza basada en paquetes de los balanceadores de carga de Capa 4 brinda menos control pero tiene un impacto correspondientemente reducido en el rendimiento. La capa 4 tampoco descifra el tr\u00e1fico, por lo que un compromiso del balanceador de carga en esta etapa no expondr\u00e1 los datos de la solicitud.<\/p>\n
Los balanceadores de carga le permiten enrutar el tr\u00e1fico entrante entre sus servidores. Son un componente fundamental de las arquitecturas de red de alta disponibilidad que le permiten ejecutar de forma transparente varias instancias de back-end. Esto aumenta la capacidad del servicio y evita una interrupci\u00f3n total si un servidor se desconecta.<\/p>\n
La mayor\u00eda de las implementaciones de equilibradores de carga le ofrecen la posibilidad de elegir entre varios algoritmos diferentes, incluidas opciones tanto est\u00e1ticas como din\u00e1micas. Muchas aplicaciones est\u00e1n bien atendidas por opciones simples como \u00abmenos conexiones\u00bb o \u00abintercambio por turnos\u00bb, pero las opciones m\u00e1s complejas son \u00fatiles en situaciones espec\u00edficas.<\/p>\n
Es una buena pr\u00e1ctica ejecutar cada aplicaci\u00f3n de producci\u00f3n detr\u00e1s de un balanceador de carga. Le brinda flexibilidad para escalar seg\u00fan demanda y reaccionar ante servidores en mal estado. El equilibrio de carga suele ser f\u00e1cil de configurar dentro de su pila de alojamiento o en la infraestructura de red del proveedor de la nube.<\/p>\n<\/div>\n