OK, então como todo mundo está votando negativamente na resposta que escrevi em 2008 * ...
Vou lhe contar como fazemos isso agora em 2014. Não usamos mais sites porque estamos usando o ASP.NET MVC agora.
Certamente não precisamos de um balanceador de carga e dois servidores para isso, tudo bem se você tiver três servidores para cada site que você mantém, mas é um exagero total para a maioria dos sites.
Além disso, não confiamos no assistente mais recente da Microsoft - magia muito lenta e oculta demais e propensa a mudar seu nome.
Aqui está como fazemos:
Temos uma etapa de pós-compilação que copia as DLLs geradas em uma pasta 'bin-pub'.
Usamos o Beyond Compare (que é excelente **) para verificar e sincronizar arquivos alterados (por FTP, porque esse é amplamente suportado) até o servidor de produção
Temos um URL seguro no site que contém um botão que copia tudo de 'bin-pub' para 'bin' (primeiro faça um backup para ativar a reversão rápida). Nesse ponto, o aplicativo é reiniciado. Em seguida, nosso ORM verifica se existem tabelas ou colunas que precisam ser adicionadas e as cria.
Isso é apenas milissegundos de inatividade. A reinicialização do aplicativo pode demorar um ou dois segundos, mas durante as solicitações de reinicialização são armazenadas em buffer, para que haja efetivamente zero tempo de inatividade.
Todo o processo de implantação leva de 5 segundos a 30 minutos, dependendo de quantos arquivos foram alterados e quantas alterações devem ser revisadas.
Dessa forma, você não precisa copiar um site inteiro para um diretório diferente, mas apenas para a pasta bin. Você também tem controle total sobre o processo e sabe exatamente o que está mudando.
** Sempre fazemos um rápido exame das mudanças que estamos implantando - como uma verificação dupla de última hora, para que saibamos o que testar e se algo quebrar, estamos prontos. Usamos o Beyond Compare porque permite que você diferencie facilmente os arquivos pelo FTP. Eu nunca faria isso sem o BC, você não tem idéia do que está substituindo.
* Role para baixo para vê-lo :( BTW, eu não recomendaria mais os sites porque eles são mais lentos de compilar e podem travar muito com os arquivos temporários compilados pela metade. Nós os usamos anteriormente porque permitiam arquivos mais ágeis por arquivo Muito rápido para corrigir um problema menor e você pode ver exatamente o que está implantando (se estiver usando o Beyond Compare, é claro - esqueça-o).