En el panorama hipercompetitivo actual, estar siempre conectado resulta vital tanto para consumidores como para partners y empleados. La arquitectura basada en cloud no solo actúa como antídoto frente a las caídas de servicio, sino que ayuda a las organizaciones a abrir nuevas vías de ingresos. Hoy, las necesidades de carga de trabajo de la IA, el desarrollo de aplicaciones y la prestación global de servicios han impulsado, cada una por separado, casi el 40 % de la adopción multicloud.
Las oportunidades que brinda el cloud se deben en gran medida a su capacidad para liberar mucha más potencia de cálculo con una fiabilidad mayor que nunca. Estas bases de datos se han vuelto fundamentales incluso para la infraestructura nacional: en algunas situaciones reales, la vida de las personas puede depender de una base de datos altamente fiable. Por ejemplo, cuando un paciente llega a urgencias, los profesionales sanitarios necesitan acceder de inmediato a su historial médico para tomar decisiones críticas sobre el tratamiento. Cualquier retraso en el acceso a esa información podría tener consecuencias mortales.
Sin embargo, todos los sistemas son susceptibles de fallar. Lo que distingue al cloud de cualquier otra arquitectura es su capacidad para desplegar rápidamente clústeres de alta disponibilidad ante un problema imprevisto. Así se garantiza un rendimiento continuo, y todo ello gracias a un componente enormemente infravalorado: el balanceador de carga.
¿Qué es el balanceo de carga?
El balanceo de carga permite a las organizaciones distribuir de forma eficaz el tráfico de red entrante entre distintos servidores backend.
Cuando un usuario final envía una petición para acceder a un sitio web, una aplicación o un servicio, esa petición llega primero a un balanceador de carga. Este balanceador funciona como puerta de entrada de todo el tráfico entrante: analiza la petición recibida, consulta una lista interna de reglas y algoritmos predefinidos y decide qué servidor o recurso backend debe atenderla.
En un sistema multitenant, varios clientes distintos comparten los mismos recursos de computación. Este enfoque supone un ahorro de costes considerable frente a desplegar una instancia separada de tu aplicación para cada cliente, además de reducir la carga operativa de gestionar numerosos componentes de infraestructura. Pero las peticiones irregulares e intermitentes no son el único problema al que se enfrentan las cargas de trabajo sin protección: también dejan a las organizaciones expuestas al problema del «vecino ruidoso».
Ocurre cuando un único tenant saturа el sistema con cargas de trabajo excesivas y degrada el rendimiento general. Sin balanceo de carga, todos los clientes dependen de ese único servidor sobrecargado, aunque haya otros disponibles.
Ventajas del balanceo de carga
El balanceo de carga es hoy una pieza tan esencial de la infraestructura en cloud que a menudo se da por sentada. Aun así, dos de sus grandes ventajas son la eficiencia de costes y un mayor nivel de disponibilidad del servicio.
Mayor eficiencia
En el cloud siempre hay varias formas de lograr el mismo resultado: al montar una aplicación, por ejemplo, se puede recurrir a una API gateway. Se trata de un puente entre cliente y servidor que gestiona el acceso a bases de datos backend, microservicios y funciones. Si te suena familiar, es por algo: muchos equipos de desarrollo de menor tamaño optan por usar una API gateway como balanceador de carga rudimentario, aprovechando su capacidad para controlar tanto la tasa de peticiones como la autenticación de usuarios.
Sin embargo, cuando una aplicación o un sitio crece en volumen de usuarios y supera el límite gratuito de la API gateway, esta arquitectura sencilla puede disparar los costes hasta niveles inasumibles. Fíjate en este ejemplo sumamente detallado de un ingeniero de AWS: con un coste de 3,50 $ por millón de peticiones en API Gateway de AWS, este caso de uso promediaba 450 peticiones por segundo. Son 38.880.000 peticiones al día, es decir, más de 4.000 $ al mes solo en API Gateway. Los balanceadores de carga, en cambio, se facturan por horas. Además del coste base de 15 $ por hora, las Load Balancer Cost Units permiten al proveedor de cloud tener en cuenta cuánto esfuerzo exige el balanceador: nuevas conexiones por segundo, conexiones activas y bytes procesados. Siguiendo el ejemplo real del autor anterior, sus 20 balanceadores de carga individuales, repartidos en tres regiones de disponibilidad, sumaron un total de 166 $ al mes con AWS Load Balancing: una diferencia enorme frente a los 4.163 $ mensuales que costaba exactamente el mismo servicio con API Gateway.
En esencia, cuando los desarrolladores necesitan una forma sencilla de invocar una función por HTTPS, los balanceadores de carga ofrecen justo la potencia necesaria, y a menudo a un precio mucho menor.
Escalabilidad garantizada
Mientras algunas organizaciones han dependido de formas poco eficientes de prestar servicio, otras se encuentran en una situación aún peor: la pesadilla on-premise de una avalancha repentina de usuarios.
Al repartir las peticiones de los usuarios entre varios servidores, los tiempos de espera se reducen notablemente. Eso mejora a su vez la experiencia de usuario y es una de las razones por las que las redes de distribución de contenido (CDN) suelen incluir un módulo de balanceo de carga. Los balanceadores no solo ayudan a garantizar una disponibilidad permanente, sino que también pueden predecir de forma inteligente el tráfico de las aplicaciones, lo que da margen a las organizaciones para añadir o modificar servidores cuando sea necesario.
Balanceadores de carga estáticos frente a dinámicos
Los balanceadores de carga son de muchos tipos y tamaños. La gran división está entre los estáticos y los dinámicos, pero cada uno tiene además sus propias formas de repartir las peticiones de los usuarios.
Estáticos
Los balanceadores de carga estáticos eligen el método de enrutamiento sin tener en cuenta el estado del servidor. Esto se consigue mediante tres formatos principales:
Hash de IP
La dirección IP del cliente se introduce en un cálculo matemático que la convierte en un número. Ese número se asocia después a un servidor concreto. Al basarse en un dato que no cambia, la dirección IP, el cliente disfruta de persistencia de sesión. Por eso encaja a la perfección con servicios que dependen de datos almacenados concretos, como los carritos de un e-commerce.
Round robin
Mientras el hash de IP se apoya en la dirección IP del cliente, los algoritmos round robin permiten usar la información del propio proveedor. Cuando un cliente solicita tu sitio, el sistema de nombres de dominio (DNS) devuelve la dirección IP de tu servidor. En el round robin, ese servidor de nombres ordena tu clúster de servidores alfabéticamente y asigna a cada uno, de forma secuencial, una pequeña parte del tráfico.
Round robin ponderado
El round robin ponderado es una evolución del método anterior que permite a los administradores introducir un sesgo en el proceso de selección. Al asignar más o menos peso a determinados servidores, los que pueden gestionar más tráfico reciben una parte proporcional.
Dinámicos
Los balanceadores de carga dinámicos se basan en algoritmos que vigilan el estado de los servidores en tiempo real. Los criterios concretos de cada algoritmo se pueden clasificar así:
Menor número de conexiones
Este algoritmo analiza cuántas conexiones abiertas tiene cada servidor disponible. Partiendo de que todas las conexiones exigen una potencia de procesamiento similar, el balanceador dirige el tráfico al servidor con menos carga de trabajo.
Menor número de conexiones ponderado
Es la versión dinámica del round robin ponderado: este enfoque permite a los administradores añadir contexto manualmente mediante el peso de cada servidor.
Tiempo de respuesta ponderado
Este algoritmo calcula el tiempo medio de respuesta de cada servidor teniendo en cuenta el número de conexiones abiertas, la región y la demanda actual. Así el tráfico va a los servidores con el tiempo de respuesta más rápido, lo que garantiza la máxima rapidez para los usuarios.
Basado en recursos
La distribución de la carga se basa en los recursos disponibles de cada servidor, como la CPU y la memoria. Un software específico instalado en cada servidor (el llamado «agente») supervisa esos recursos, y el balanceador de carga consulta al agente para tomar decisiones informadas sobre cómo repartir el tráfico.
Consigue peticiones de red más rápidas
Los balanceadores de carga son una pieza esencial de la infraestructura informática moderna. Permiten distribuir el tráfico de red de forma eficiente y aseguran un rendimiento óptimo, alta disponibilidad y una experiencia de usuario fluida. Al repartir la carga entre varios servidores, estas herramientas dinámicas se han vuelto imprescindibles para las organizaciones que quieren mejorar la fiabilidad y la escalabilidad de sus aplicaciones y servicios.
Para ver estos métodos de balanceo en acción, puedes ver este breve vídeo: «¿Qué es un balanceador de carga?».

