OK, dato che tutti stanno sottovalutando la risposta che ho scritto nel lontano 2008 * ...
Ti dirò come lo facciamo ora nel 2014. Non utilizziamo più i siti Web perché stiamo utilizzando ASP.NET MVC ora.
Non abbiamo certamente bisogno di un bilanciamento del carico e di due server per farlo, va bene se hai 3 server per ogni sito web che gestisci, ma è eccessivo per la maggior parte dei siti web.
Inoltre, non facciamo affidamento sull'ultima procedura guidata di Microsoft: troppo lenta, troppa magia nascosta e troppo incline a cambiarne il nome.
Ecco come lo facciamo:
Abbiamo un passaggio post build che copia le DLL generate in una cartella 'bin-pub'.
Usiamo Beyond Compare (che è eccellente **) per verificare e sincronizzare i file modificati (su FTP perché ampiamente supportati) fino al server di produzione
Sul sito Web abbiamo un URL sicuro contenente un pulsante che copia tutto in "bin-pub" su "bin" (eseguendo prima un backup per abilitare il rollback rapido). A questo punto l'app si riavvia da sola. Quindi il nostro ORM verifica se ci sono tabelle o colonne da aggiungere e le crea.
Sono solo millisecondi di downtime. Il riavvio dell'app può richiedere uno o due secondi, ma durante il riavvio le richieste vengono memorizzate nel buffer in modo da ridurre effettivamente i tempi di inattività.
L'intero processo di distribuzione richiede da 5 secondi a 30 minuti, a seconda del numero di file modificati e del numero di modifiche da rivedere.
In questo modo non è necessario copiare un intero sito Web in una directory diversa ma solo la cartella bin. Hai anche il controllo completo sul processo e sai esattamente cosa sta cambiando.
** Facciamo sempre una rapida occhiata alle modifiche che stiamo implementando - come doppio controllo dell'ultimo minuto, quindi sappiamo cosa testare e se qualcosa si rompe siamo pronti. Usiamo Beyond Compare perché ti consente di diffondere facilmente i file tramite FTP. Non lo farei mai senza BC, non hai idea di cosa stai sovrascrivendo.
* Scorri verso il basso per vederlo :( A proposito, non consiglierei più i siti Web perché sono più lenti da costruire e possono arrestarsi in modo anomalo con i file temporanei compilati a metà. Li abbiamo usati in passato perché consentivano più agili file per file distribuzione: molto veloce per risolvere un problema minore e puoi vedere esattamente cosa stai distribuendo (se usi Beyond Compare ovviamente - altrimenti dimenticalo).