Comment faites-vous les déploiements de sites web IIS en production ?

Alors, je ne sais pas trop si c’est une question pour Stack Overflow ou Server Fault. Si j’ai un site web .NET que je veux déployer en environnement de production, quelle est la meilleure façon de le faire ? Dois-je le packager en MSI et l’installer ? Utiliser nant pour pousser les fichiers nécessaires ? Simplement transférer les fichiers par FTP en utilisant Beyond Compare ?

Comment déployez-vous le code en production ? Il s’agit ici d’un cas spécifique à Windows.

IIS prend en charge le déploiement par xcopy, donc simplement copier les fichiers devrait suffire, sauf si vous avez des exigences particulières.

Une façon de le faire est un simple script qui utilise ROBOCOPY pour copier les nouveaux fichiers vers le serveur.

Si le site est volumineux et que cela prend trop de temps, utilisez un système de contrôle de version. J’aime Mercurial pour cet usage, bien que vous deviez faire attention à ce que les fichiers de configuration du système de contrôle de version ne finissent pas par être servis au public. Le déploiement consiste alors simplement à valider les modifications puis à récupérer la dernière version sur le serveur. En plus d’être efficace, cela permet des retours en arrière rapides (si vous avez tagué la dernière bonne version) au cas où votre dernière version aurait un bogue bloquant.

Pour minimiser les temps d’arrêt, vous pourriez faire en sorte que le script copie les fichiers vers un nouveau répertoire puis renomme rapidement les répertoires, ou change l’endroit vers lequel IIS pointe vers le nouveau répertoire.