Claro, isso é o que fazemos. Temos dois servidores web, A e B. Temos haproxy sentado na frente deles, balanceando respeitosamente os pedidos entre eles. Assim como você, nós não armazenamos os dados da sessão de uma forma que uma solicitação deva retornar ao servidor de origem.
Quando queremos fazer uma atualização, retiramos o Servidor A do pool. Realizamos a atualização e testamos o site internamente. Em seguida, colocamos o Servidor A no pool e, no mesmo momento, retiramos o Servidor B do pool. Em seguida, atualizamos o Servidor B e o colocamos de volta.
Upside: atualizações do site com 0 downtime.
Desvantagem: Durante a atualização, você não tem balanceamento de carga ou redundância. Para resolver isso, você tem muito mais servidores no mix.
Quanto a se vale a pena ou não, só você pode responder isso. Nosso software é incrivelmente complexo e uma implantação pode levar mais de 5 minutos (e isso é totalmente automatizado), e está em uso praticamente 24/7. Então, foi um acéfalo para nós.
Se o seu site só obtiver tráfego esporadicamente ao longo do dia, ou principalmente durante as horas de trabalho, e você não estiver forçando as barreiras do que um servidor da Web pode suportar, talvez não valha a pena. Lançar um banner de manutenção por 10 segundos enquanto svn export
runs pode ser uma solução mais apropriada.