A evolução dos controladores de entrega de aplicativos está intimamente ligada ao desenvolvimento de aplicações web, data centers e do amplo campo do gerenciamento de redes.
No final dos anos 1990 e início dos anos 2000, com a comercialização da internet e o aumento do tráfego web, as empresas precisavam de uma solução para garantir que sites e aplicativos pudessem lidar eficientemente com grandes volumes de tráfego de aplicações. O principal desafio era encontrar uma forma de distribuir as solicitações recebidas entre vários servidores para garantir alta disponibilidade e resiliência da rede.
A primeira geração de dispositivos criados para resolver esse desafio foi chamada de balanceadores de carga. Inicialmente, eles eram simples e operavam na camada de transporte. Os balanceadores de carga se concentravam em distribuir o tráfego recebido entre vários servidores para equilibrar as cargas e evitar sobrecarregar qualquer servidor individualmente.
Com o aumento da complexidade de aplicativos e sites, os balanceadores de carga legados perderam popularidade por não conseguirem analisar e tomar decisões com base no conteúdo das solicitações dos usuários (além de apenas endereços IP e portas). Isso levou os desenvolvedores a adotar soluções de balanceamento de carga na camada 7, que podiam inspecionar o conteúdo das mensagens na camada de aplicação.
Os balanceadores de carga avançados podiam rotear o tráfego com base em fatores como cabeçalhos HTTP, cookies ou até mesmo solicitações de páginas específicas, facilitando estratégias mais sofisticadas de gerenciamento de tráfego, como persistência de sessão (ou “stickiness”) e roteamento baseado em conteúdo. Com o passar do tempo, à medida que os desenvolvedores adicionavam mais funcionalidades, esses balanceadores de carga se transformaram nos controladores inteligentes que hoje chamamos de ADCs.