2009-12-14 5 views
0

J'ai un processus de déploiement automatisé pour une application Java où actuellement je construis l'application sur une machine de build, vérifiant la construction dans scm, et ayant la machine de production tirer l'artefact de construction (qui est un zip) les fichiers de classe et de configuration à l'endroit où ils sont censés être.Déploiement: Construire sur machine de production ou pas?

J'ai vu d'autres stratégies où la machine de production tire la source de scm et la construit elle-même. La chose que je n'aime pas à propos de l'ancienne approche est que si je construis pour la production au lieu de staging ou dev ou quoi que ce soit, je dois spécifier manuellement l'env dans la construction. Si le serveur cible était en charge de cela, cependant, il y aurait moins de réflexion et de friction impliqués dans la construction. Cependant, j'aime aussi utiliser exactement la même construction que celle qui était testée lors de la mise en scène. Donc, je suppose que ma question est, est-il préférable de copier l'application déjà construite/déjà testée en production ou d'avoir la production construire l'application à nouveau une fois qu'il a été testé.

Répondre

2

Si vous avez déjà un système de compilation automatisé qui crée une version de test, il est très difficile de l'étendre afin de générer une version de test et une version de production en même temps. De cette façon, vous obtenez la sécurité de savoir qu'ils ont été construits à partir de la même source vérifiée et vous avez moins de travail manuel. Je grince vraiment à l'idée de vérifier les artefacts construits dans SCM!

1

Je préfère toujours garder le moins possible humain sur un serveur de production - moins à mettre à jour, moins à mal tourner.

Questions connexes