Me quito el sombrero ante uno de nuestros competidores por su brillante explicación de la diferencia entre NLB y Application Load Balancing. No hace falta que lo digas, Lottie ha escrito un artículo excelente (aunque esté en el otro bando 😉
El equilibrio de carga de aplicaciones (que también ha recibido otros nombres extravagantes a lo largo de los años, como conmutación o enrutamiento de contenidos, conmutación de aplicaciones, enrutamiento de aplicaciones o páginas, etc…) se centra realmente en distribuir la carga entre las aplicaciones de forma inteligente. Aunque puede utilizar variables de entrada como la dirección IP y el puerto, generalmente no lo hace porque eso no ofrece la información sobre qué servidor (aplicación, web, virtual, lo que sea) va a ser capaz de responder (tiene capacidad) en un plazo aceptable para la empresa (tiempo de respuesta) para una aplicación específica (o parte de la aplicación, como las imágenes).
La diferencia entre ambos radica principalmente en las variables utilizadas para distribuir la carga. El equilibrio de carga de red se basa únicamente en variables de red, mientras que el equilibrio de carga de aplicación se basa principalmente en variables de aplicación.
Este cambio en las técnicas de equilibrio de carga abrió todo tipo de nuevas eficiencias y opciones de escalabilidad, ya que permitió que las arquitecturas se especializaran (dirigir las peticiones de imágenes a servidores centrados en servir imágenes, las peticiones de contenido estático a servidores centrados en servir contenido estático, etc.). También permitió la persistencia (sticky sessions), que aceleró enormemente la capacidad de escalar aplicaciones con estado en formato web.