Estou tentando decidir entre usar uma solução de balanceamento de carga da camada 4 para meu datacenter ou uma solução da camada 7. Infelizmente (para minha sanidade mental), meu caso de uso é simples o suficiente para que ambas as soluções funcionem bem, evitando a maioria dos pontos fracos e sem realmente utilizar os pontos fortes do outro. Qualquer que seja a solução que acabemos usando, ela deve ter alta disponibilidade e alto rendimento. Mas estamos planejando usá-lo apenas para equilibrar a carga em um cluster de servidores Web, nenhum dos quais tem requisitos para gerenciamento de sessões "persistente" (cookie ou IP), regras complexas de reescrita - ou, nesse caso, regras de reescrita em todos.
Os balanceadores de carga serão conectados a dois comutadores, ambos com uma conexão independente até a camada de agregação do datacenter e mesclados usando o Rapid Spanning Tree e qualquer protocolo proprietário que os comutadores usem para virtualização. Os balanceadores de carga também serão reticulados entre si através de um cabo cruzado. Todos os servidores no cluster estão conectados aos dois comutadores. Tudo o que os balanceadores de carga precisam fazer é apontar o tráfego sobre eles.
Como é apenas HTTP, posso usar uma solução de balanceamento de carga da camada 7, como HAProxy ou nginx. Mas eu também poderia usar o projeto LVS com ldirectord ou keepalived ou qualquer outra coisa.
Eu tentei dividir os prós e os contras como os vejo, mas isso acaba acabando. O que você recomendaria e por quê? Estou esquecendo de algo?