2010-11-18 42 views
3

Je suis en train de configurer une intégration d'intégration continue pour une application Spring Roo en utilisant l'environnement de développement Rational Team Concert (RTC) et le moteur de génération Jazz. Lors de la configuration de la définition de génération, le champ Build Workspace de l'onglet Jazz Source Control permet de sélectionner l'espace de travail du référentiel d'un utilisateur ou un flux. Les ressources RTC Continuous Integration Best Practices et d'autres ressources de build Jazz se réfèrent systématiquement à l'utilisation d'un espace de travail de référentiel dédié associé à un utilisateur de build, ce qui me laisse penser qu'il s'agit de l'approche préférée. Je n'ai pas été en mesure de trouver des informations sur la construction du flux directement. Le flux de notre projet contient tous les artefacts nécessaires à la construction, et j'ai testé et confirmé que la construction d'intégration continue fonctionne à partir du flux. Je suis incapable de penser à aucune raison pour laquelle je devrais créer et gérer un espace de travail spécifique à cette fin.Jazz SCM Continuous Integration - Créer un flux en fonction de l'espace de travail?

Ma question est la suivante: est-ce que je joue avec le feu en construisant directement à partir du ruisseau? Y a-t-il des complications potentielles en aval de cette approche que je ne connais pas?

Répondre

5

Répondre à ma propre question au cas où un autre utilisateur SO aurait la même question dans le futur. Après quelques expérimentations, j'ai découvert que l'inconvénient de construire directement à partir du flux était qu'il ignorait la propriété "Construire seulement s'il y a des modifications acceptées" dans l'onglet Jazz Source Control. Par conséquent, les générations à partir d'un flux ne peuvent être effectuées qu'à des intervalles prédéfinis. Il n'est pas possible de configurer la génération uniquement lorsque de nouvelles modifications ont été validées dans le flux.

Un espace de travail dédié est requis pour que la génération accepte les nouvelles modifications du flux et les utilise pour déclencher une requête de génération.

1

Il y a une autre grosse différence ici. Cela a à voir avec comment la construction est faite. Permettez-moi de souligner la différence ici. Si vous construisez à partir d'un espace de travail de construction dédié, votre espace de travail a déjà une copie de tout le code. Lorsque vos modifications sont envoyées et que la génération est lancée, seuls les fichiers modifiés (votre ensemble de modifications) doivent être mis à jour et physiquement copiés du référentiel vers l'espace de travail du référentiel de build. Comme la plupart des changements sont mineurs, cela implique de copier de 0,1% à 2% de votre base de code du référentiel.

Si vous construisez à partir de "le flux", alors votre espace de travail de construction doit être créé (vous devez compiler quelque part!). Donc, lorsque cela est créé, votre base de code ENTIER doit être mise à jour et physiquement copiée du référentiel dans l'espace de travail du référentiel de construction. Cela signifie récupérer 100% de votre base de code à partir du référentiel. Chaque opération de fichier implique un appel pour découvrir la ressource nécessaire, extrayant cette ressource de la base de données hébergeant le référentiel, puis demandant à l'application Jazz de fournir ce fichier source sur le réseau. Il en résulte une charge sur le serveur de base de données, le serveur Web et le serveur d'applications. Plus vous téléchargez comme ça, plus vous chargez de charge sur ces composants.

Il y a certaines choses que vous pouvez utiliser pour minimiser cette charge sur l'infrastructure Jazz. L'utilisation de proxys de mise en cache de contenu (à l'aide d'un simple serveur proxy Squid) peut s'avérer utile.

Pour plus de détails sur vos options ici, et les mérites relatifs de ces options, allez lire mon article de blog et livre blanc sur les problèmes de performance de Jazz (http://dtoczala.wordpress.com/2013/02/11/jazz-performance-a-guide-to-better-performance/). Cet article a presque un an maintenant, mais reste valide. Vous pouvez également consulter le wiki de déploiement de Jazz (https://jazz.net/wiki/bin/view/Deployment/WebHome) et consulter les sections sur le dépannage des performances et les problèmes de performances.