O que você deseja é chamado de Roteiro de Solicitação de Aplicativo da Microsoft 2 (ARR ). (Talvez o nome desajeitado faz parte do porquê tão poucas pessoas sabem de sua existência?)
O Microsoft ARR é um balanceador de carga de camada HTTP gratuito, implementado como um módulo para o IIS 7+. (A ARR em si é gratuita, mas a licença do Windows Server é necessária para o SO subjacente.)
Como o ARR é apenas um thin shim no topo do IIS, ele é bastante rápido e absolutamente robusto. E administrar o ARR será familiar para vocês, já que você já é uma loja do IIS. O ARR apenas se instala na GUI do Gerenciador do IIS.
Para uma verdadeira configuração de alta disponibilidade, você devem combinar NLB e ARR , para que o NLB mantenha a camada do servidor ARR altamente disponível, e a ARR mantém a camada de servidor da web de backend altamente disponível. Consulte os documentos da Microsoft e veja a longa lista de documentação no final da página de visão geral da ARR, na parte superior.
A única desvantagem real do ARR é que, se você fizer uma alta disponibilidade real, precisará de pelo menos 2 licenças e & servidores físicos. Dado que, e dado o tempo que leva para configurar, então, dispositivos de balanceamento de carga low-end, como Coyote Point ou loadbalancer.org às vezes pode ser uma alternativa econômica (Or Kemp, Barracuda Networks ou qualquer um dos outros fornecedores de baixo custo).
ability to seamlessly take a web server out of the load-balanced mix for maintenance without interrupting users.
Isso depende de como o estado da sessão é tratado, ou seja, como seus servidores de back-end compartilham ou não o compartilhamento das informações "este usuário está conectado".
Se a camada de webapp for sem estado (ou seja, colocando o estado de sessão em um armazenamento de dados compartilhado, fx um cache de RAM compartilhado ou MSSQL), você poderá simplesmente extrair um servidor do pool. Caso contrário, você poderá usar "sessões fixas" no balanceador de carga e remover um servidor de back-end do pool do balanceador de carga e aguardar até que todos os usuários tenham "esgotado" o servidor em questão.
Willy Tarreau, autor de HAProxy, tem uma bela visão geral das técnicas e questões de balanceamento de carga aqui .