OK, puisque tout le monde vote contre la réponse que j'ai écrite en 2008 * ...
Je vais vous dire comment nous le faisons maintenant en 2014. Nous n'utilisons plus de sites Web car nous utilisons maintenant ASP.NET MVC.
Nous n'avons certainement pas besoin d'un équilibreur de charge et de deux serveurs pour le faire, c'est bien si vous avez 3 serveurs pour chaque site Web que vous gérez, mais c'est exagéré pour la plupart des sites Web.
De plus, nous ne nous appuyons pas sur le dernier assistant de Microsoft - trop lent, trop de magie cachée et trop enclin à changer de nom.
Voici comment nous procédons:
Nous avons une étape de post-construction qui copie les DLL générées dans un dossier «bin-pub».
Nous utilisons Beyond Compare (ce qui est excellent **) pour vérifier et synchroniser les fichiers modifiés (via FTP car cela est largement pris en charge) jusqu'au serveur de production
Nous avons une URL sécurisée sur le site Web contenant un bouton qui copie tout ce qui se trouve dans «bin-pub» vers «bin» (en prenant d'abord une sauvegarde pour permettre une restauration rapide). À ce stade, l'application redémarre d'elle-même. Ensuite, notre ORM vérifie s'il y a des tables ou des colonnes qui doivent être ajoutées et les crée.
Ce ne sont que des millisecondes d'arrêt. Le redémarrage de l'application peut prendre une seconde ou deux, mais pendant le redémarrage, les demandes sont mises en mémoire tampon afin qu'il n'y ait effectivement aucun temps d'arrêt.
L'ensemble du processus de déploiement prend entre 5 secondes et 30 minutes, selon le nombre de fichiers modifiés et le nombre de modifications à examiner.
De cette façon, vous n'avez pas à copier un site Web entier dans un répertoire différent, mais uniquement dans le dossier bin. Vous avez également un contrôle total sur le processus et savez exactement ce qui change.
** Nous faisons toujours un rapide tour d'horizon des changements que nous déployons - comme une double vérification de dernière minute, afin que nous sachions quoi tester et si quelque chose se brise, nous sommes prêts. Nous utilisons Beyond Compare car il vous permet de comparer facilement des fichiers via FTP. Je ne ferais jamais cela sans BC, vous n'avez aucune idée de ce que vous écrasez.
* Faites défiler vers le bas pour le voir :( BTW, je ne recommanderais plus les sites Web car ils sont plus lents à construire et peuvent se bloquer avec des fichiers temporaires à moitié compilés. Nous les avons utilisés dans le passé car ils permettaient un fichier par fichier plus agile Déploiement très rapide pour résoudre un problème mineur et vous pouvez voir exactement ce que vous déployez (si vous utilisez Beyond Compare bien sûr - sinon oubliez-le).