Por @Alvy — 12 de abril de 2023

Load Balancing

Me topé con un interesante artículo de Sam Rose que explica Cómo funciona el balanceo de carga en los servidores web. Este término técnico hace referencia a la forma en que los servidores donde se alojan las páginas web distribuyen el trabajo al recibir las peticiones de los usuarios. Esto es porque normalmente en vez de un único servidor físico hay varios, a modo de «imágenes espejo», con el mismo contenido, para ganar velocidad. Es esa forma de repartir, equilibrar o balancear esa carga, la que requiere cierta inteligencia algorítmica para que todo funcione correctamente.

La explicación es muy sencilla de entender y se lee en 15 minutos. Describe con visualizaciones perfectamente animadas tanto cuál es el problema como las diversas soluciones. Los cuadrados grises simbolizan los servidores (más o menos potentes según el tono del color), los puntos verdes (requests) son las peticiones correctamente atendidas y los rojos las perdidas (dropped).

Las soluciones van desde organizar los servidores en round-robin o «por turnos», repartiendo la carga equitativamente, como en round-robin «por pesos», donde conociendo la potencia de cada servidor se puede exigir más a los servidores más potentes y menos a los menos potentes. También se mencionan el algoritmo de menos conexiones (las peticiones las atiende quien esté libre) y se hacen algunas consideraciones sobre la latencia, el retardo típico implícito en toda conexión.

Lo más interesante es tal vez el simulador de algoritmos de balanceo de carga que hay al final de la página, donde visualmente se puede jugar con los seis algoritmos que se mencionan en la explicación, viendo qué sucede al modificar ciertos parámetros: la velocidad a la que llegan las peticiones, la diferencia de potencia de los servidores, etcétera. Puede que en un mundo de computación y servidores en la nube como en el que estamos hoy en día todos estos conceptos queden un poco fuera de la preocupación del común de los mortales, pero en algún lugar hay máquinas haciendo este trabajo y técnicos que deben preocuparse de que funcionen adecuadamente.

Relacionado:

Compartir en Flipboard Publicar / Tuitear Publicar