O artigo que você leu descreveu o balanceamento de carga DNS 'round-robin'. O benefício para o qual é que você está confiando na infra-estrutura DNS existente para equilibrar onde as solicitações vão ... Esta metodologia também tem suas desvantagens ...
A primeira solicitação para seu web-sever / app deve ocorrer antes que essa lógica do lado do cliente possa ser executada, presumo? Isso significa que você também pode fornecer a lista de servidores disponíveis durante essa solicitação. (Este é um argumento a favor da abordagem do lado do cliente)
A parte mais inteligente de um aplicativo é o próprio aplicativo, não a infraestrutura de software / hardware que o suporta agnosticamente. Esse é certamente um dos benefícios da implementação do balanceamento de carga em qualquer lugar na camada do aplicativo. Outro benefício é que você está teoricamente ganhando algum nível de alta disponibilidade. Desenvolver um aplicativo dessa maneira também significa que deve ser bastante fácil distribuir o aplicativo para vários "sites".
Os desafios que você enfrentará serão todos os desafios típicos de balanceamento de carga / desafios de vários nós. Se você estiver usando um banco de dados baseado em arquivo ou um mecanismo de sessão, precisará descobrir como compartilhá-los. Se você estiver executando a manutenção em um dos servidores, o aplicativo cliente precisará ser inteligente o suficiente para reconhecer quando o nó não estiver mais disponível e tentar outro. Se você usar a metodologia DNS - sua capacidade de balanceamento de carga estará diretamente relacionada a quantos IPs você está disposto a possuir. Isso poderia complicar o roteador do lado do servidor, o proxy reverso, a configuração do servidor ip.
No geral, eu diria que o balanceamento do lado do cliente é uma ótima abordagem para a maioria dos aplicativos. Usamos uma abordagem semelhante para aplicativos de desktop para alta disponibilidade e balanceamento de carga.
Você também pode usar uma abordagem mista. Usamos uma abordagem mista para a descoberta de servidores confiando parcialmente / em segundo lugar no DHCP - isso é outra história.