Para a parte de failover, você deve procurar uma tecnologia de "proxy reverso" ou "balanceador de carga". Com isso, o conteúdo sempre é entregue por um primário, ou por todos os servidores, e se um falhar, o outro assume. Seus esforços de sincronização podem ser solucionados usando "git" com um repositório externo a todos os servidores web. Você pode então atualizar um servidor em particular a partir da versão atualizada, testar e reverter, se necessário.