Puisque tout le monde rejette la réponse que j'ai écrite en 2008*...
Je vais vous dire comment nous procédons 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 très bien si vous avez 3 serveurs pour chaque site web que vous gérez, mais c'est totalement excessif pour la plupart des sites web.
De plus, nous ne nous fions pas au dernier assistant de Microsoft - trop lent, avec trop de magie cachée, et trop enclin à changer de nom.
Voici comment nous procédons :
-
Nous avons une étape post-construction qui copie les DLLs générées dans un dossier 'bin-pub'.
-
Nous utilisons Beyond Compare (qui est excellent**) pour vérifier et synchroniser les fichiers modifiés (par FTP parce que c'est largement supporté) sur le serveur de production.
-
Nous disposons d'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 un retour en arrière rapide). À ce stade, l'application redémarre elle-même. Ensuite, notre ORM vérifie si des tables ou des colonnes doivent être ajoutées et les crée.
Cela ne représente que quelques millisecondes de temps d'arrêt. Le redémarrage de l'application peut prendre une ou deux secondes, mais les demandes sont mises en mémoire tampon pendant le redémarrage, de sorte que le temps d'arrêt est effectivement nul.
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 autre répertoire, mais seulement le dossier bin. Vous avez également un contrôle total sur le processus et savez exactement ce qui est modifié.
**Nous faisons toujours un examen rapide des changements que nous déployons - comme une double vérification de dernière minute, afin de savoir ce qu'il faut tester et si quelque chose se casse, nous sommes prêts. Nous utilisons Beyond Compare parce qu'il vous permet de comparer facilement les fichiers par FTP. Je ne ferais jamais cela sans BC, vous n'avez aucune idée de ce que vous écrasez.
*Défilez jusqu'en bas pour le voir :( BTW Je ne recommanderais plus les sites Web parce qu'ils sont plus lents à construire et peuvent se planter gravement avec des fichiers temporaires à moitié compilés. Nous les utilisions dans le passé car ils permettaient un déploiement plus agile fichier par fichier. Il est très rapide de corriger 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).
0 votes
Cela ne devrait-il pas être sur ServerFault ?
53 votes
Peut-être, mais ServerFault n'existait pas en septembre 2008.
3 votes
IIS peut-il pointer vers un dossier symlink ? La modification du lien symbolique entraînera-t-elle le recyclage du processus IIS ?
0 votes
Une solution finale avec un code source complet script échantillon ?
0 votes
N'est-il pas possible d'avoir plusieurs pools d'applications et de basculer le trafic d'un pool d'applications à un autre ?