39 votes

Automatiser le déploiement pour les applications Web?

Mon équipe est actuellement en train d'essayer d'automatiser le déploiement de notre .Net et applications web en PHP. Nous voulons simplifier les déploiements, et pour éviter les tracas et beaucoup des maux de tête causés par le faire manuellement.

Nous avons besoin d'une solution qui va nous permettre de:

  • Compilez l'application
  • La Version de l'application avec la version SVN nombre
  • Sauvegarde du site existant
  • Déployer une batterie de serveurs web

Toutes nos applications sont source contrôlée à l'aide de SVN et notre .Net applications l'utilisation CruiseControl. Nous avons essayé d'utiliser MSBuild et NAnt des scripts de déploiement avec un succès limité. Nous avons également utilisé Capistrano dans le passé, mais veulent éviter d'utiliser Ruby si possible.

Existe-il d'autres outils de déploiement qui pourrait nous aider?

32voto

Sam Wessel Points 4906

Merci à vous tous pour vos suggestions. Nous avons vérifié tous, mais après réflexion, nous avons décidé de rouler nos propres avec une combinaison de CruiseControl, NAnt, MSBuild et MSDeploy.

Cet article a quelques informations: L'intégration de MSBuild avec CruiseControl.NET

Voici à peu près comment notre solution fonctionne:

  • Les développeurs à construire le "debug" version de l'application et d'exécuter les tests unitaires, puis vérifiez à SVN.
  • CruiseControl voit les mises à jour et les appels de notre script de construction...
    • Exécute toutes les nouvelles migrations sur la base de données
    • Remplace les fichiers de configuration avec le serveur de build config
    • Construit le 'debug' configuration de l'application
    • Exécute tous les tests unitaires et d'intégration
    • Construit la "déployer" configuration de l'application
      • Les Versions de la Dll avec le courant majeur/mineur de version et de révision SVN, par exemple 1.2.0.423
      • Déplace cette nouvelle construction d'une "libération" dossier sur notre serveur de build
      • Supprime les fichiers inutiles
    • Les mises à jour de IIS sur le serveur de build, si nécessaire

Ensuite, lorsque nous avons vérifié, tout est prêt à aller jusqu'à vivre/mise en scène nous exécuter un autre script:

  • Exécuter les migrations de sur live/serveur intermédiaire
  • MSDeploy: archive en direct/site de test
  • MSDeploy: sync site à partir de construire à vivre/mise en scène

Elle n'était pas jolie arriver à ce stade, mais c'est surtout le travail comme un charme maintenant :D

Je vais essayer de garder cette réponse mis à jour que nous apportons des modifications à notre processus, comme il semble y avoir plusieurs questions similaires sur SA maintenant.

3voto

jeremcc Points 3720

J'utilise Visual Build Pro depuis des années. Il est assez lisse et facile à utiliser et intègre de nombreuses opérations standard (comme celles que vous avez mentionnées).

3voto

Gary Richardson Points 7371

J'utilise des Marionnettes, des Makefiles pour construire des tours et de Bambou pour faire cela pour moi. Mon système ne s'appliquent pas directement, et je ne suis pas familiers avec le monde de Windows, mais il existe des modèles transférables.

Mon installation me permet de construire des tours pour tout (php libs, de sites web en php, perl modules, C apps, etc) qui composent mon application. Cela peut être appelé manuellement, ou par l'intermédiaire de Bambou. - Je transférer ces TR / min dans un yum repo et des marionnettes, des poignées de faire assurer le dernier (ou corriger) les versions des logiciels sont installés dans le cluster.

Pourriez-vous automatiser un logiciel de création de packages MSI? Je pense que la Marionnette pouvez gérer l'installation des packages logiciels et les versions de Windows.

2voto

Sander Pham Points 3711

J'utilise msdeploy pour cela. Cela fonctionne parfaitement.

À propos de Ant; Pour la plate-forme .NET, nous avons NAnt et vous pouvez l'utiliser en combinaison avec MSDeploy; vous avez la possibilité d'appeler MSDeploy à partir de votre script Nant.

Édité: Juste pour clarifier les choses; vous pouvez tout faire avec msdeploy. L'utilisation de Nant n'est pas une obligation.

1voto

BozoJoe Points 1136

Personne n'a mentionné Final Builder http://www.finalbuilder.com . C'est à égalité avec Visual Build Pro. Bonne interface graphique pour la création de faisceaux de déploiement de construction automatisés

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X