|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre habitué
![]() PoichOU Étudiant Inscription : juillet 2006 Messages : 296 ![]() |
Bonjour à tous,
Je m'intéresse de près à l'intégration continue depuis quelques mois et je souhaite créer une "plate-forme" pour faire l'IC de tous mes projets (c'est des projets Java). Jusque là je montais un environnement spécifique pour chaque projets mais maintenant je voudrais centraliser et industrialiser un peu tout ça J'ai installé sur un serveur debian :
Puis j'ai "déployé" dessus (enfin je suis entrain) :
Voici les questions que je me pose : - J'ai lu un peu partout qu'il était "mieux" de lancer hudson, sonar et artifactory dans un serveur tomcat (ou autre) plutôt qu’en standalone. Mais au niveau perf' ça m'inquiète un peu, n'est-ce pas trop gourmands pour un Tomcat ? - Je souhaite collaborer avec d’autres personnes sur certains projets. Comment je peux gérer des projets multiples sur les différentes applications et surtout comment gérer les habilitations des utilisateurs ? - Est-ce que quelqu'un a déjà crée un tel environnement ou quelque chose de similaire ? Merci d’avance pour vos retours PoichOU |
|
|
00
|
|
|
#2 | |||
![]() ![]() Romain LinsolasJava craftsman Inscription : juillet 2005 Messages : 3 422 ![]() |
Bonjour,
Je m'occupe de l'intégration continue dans mon service. Je ne suis toutefois pas en charge des machines, je suis plus axé sur la gestion des services Jenkins / Sonar. Citation:
Hudson en lui-même n'est pas très gourmand. Toutefois, son rôle principal étant d'exécuter des builds de projets, si tu as beaucoup de projets et beaucoup d'activité, alors cela risque de ralentir les performances de ta machine. En général, on va considérer que le nombre de CPU de ton serveur = le nombre de jobs en parallèle réalisables par Jenkins / Hudson. Donc si tu as un dual-core, tu pourras exécuter 2 builds en parallèle. Sauf que dans ce cas là, il faudra se dire que c'est Jenkins qui va manger beaucoup de ressources de ta machine, phagocytant ainsi les autres services (Sonar, SVN, Artifactory). Mais après, rien ne t'oblige à demander à Jenkins de vérifier SVN toutes les 5 minutes, tu peux espacer cet intervalle à 1/2 heure par exemple, réduisant la consommation du serveur. Aussi, il faut profiter des moments calmes pour exécuter les builds gourmands. Ainsi, on lancera plutôt les analyses Sonar par Jenkins toutes les nuits, libérant ainsi les ressources pour la journée. Concernant Sonar, il me semble qu'il faut lui attribuer en général 512Mo de mémoire. Pour la gestion SVN, je ne saurais pas dire, mais je doute que ce soit très gourmand, mais attention quand même : Jenkins va aller interroger très souvent SVN, donc il faudra sans doute surveiller les statistiques pour voir si tout se passe bien. Quant à Artifactory, je dirais pareil que SVN : ce n'est pas très gourmand mais il peut y avoir pas mal d'accès en lecture / écriture sur le disque, donc là aussi ce n'est pas négligeable. Pour en revenir à ta question : je ne pense pas que ce soit un problème de faire tourner tout cela sur un Tomcat. Ca doit pouvoir tenir la charge. De toutes façons, lancer tous les services séparément ou dans un seul Tomcat ça revient un peu au même, tu auras besoin de ressources pour tout faire tourner. L'avantage de les séparer, c'est que si tu as Sonar qui tombe, alors Jenkins continuera à tourner. Alors que si ton Tomcat tombe, tous tes services s'arrêtent. Bon pour résumer : je ne pense pas que ce soit là le problème. Ton principal problème est de t'assurer que ta machine a les reins suffisament solides pour tenir la charge. Et de toutes façons, rien ne t'empêche de changer ton fusil d'épaule si jamais tu as des problèmes de performances sur tes services. Hudson peut très bien être externalisé à Tomcat sans souci, vu que les données de configuration sont placées ailleurs sur le disque. Un simple arrêt et nettoyage de Tomcat, puis installation d'un service Hudson dédié suffira ! Bref, lance toi et monitore les performances de ton serveur ! Citation:
Citation:
![]() Voilà, j'espère t'avoir donné quelques billes, mais n'hésite pas à approfondir tes questions.
__________________
Nous sommes tous semblables, alors acceptons nos différences ! -------------------------------------------------------------- Mes liens : Blog | Page DVP | Suivez-moi sur Twitter Mes articles : Hudson | Sonar | Outils de builds Java Maven 3 | TeamCity| CitConf 2009 Mes critiques : Apache Maven |
|||
|
00
|
|
|
#3 | |||||||
|
Membre habitué
![]() PoichOU Étudiant Inscription : juillet 2006 Messages : 296 ![]() |
Aaaah une réponse de l'incontournable Romain.
![]() Citation:
Citation:
Citation:
Citation:
Citation:
Citation:
Citation:
PoichOU |
|||||||
|
|
00
|
|
|
#4 | ||
![]() ![]() Romain LinsolasJava craftsman Inscription : juillet 2005 Messages : 3 422 ![]() |
Mais bien sûr que si, je suis contournable. Je ne suis pas si gros que ça !
![]() Citation:
Mais il ne faut pas oublier un point important : on peut améliorer la rapidité des builds de différentes façons. D'un point de vue configuration, par ex. en cochant la case "Build > Maven > Advanced > Incremental builds" (Maven 2.1+) qui permet de ne recompiler que le nécessaire. D'un point de vue projet aussi, en améliorant les tests unitaires pour qu'ils se lancent vite, etc. Citation:
Je recherche le plugin et je te dis. Quant au 2e point, je ne comprends pas trop : tu veux sauvegarder quoi au juste ? A noter que tu peux spécifier dans les configurations d'un job le nombre de builds que tu souhaites conserver (soit en nombre, soit en durée). Mais aussi, tu peux spécifier (il faut cliquer sur Advanced) le nombre d'artifacts que tu souhaites conserver, sur les mêmes critères. Par exemple, mes jobs conservent un historique de 50 builds mais seulement 2 artifacts, ce qui limite fortement la taille utilisée par chaque job. En gros, si un build complet prend 200Mo, alors je vais conserver 200Mo x 2 + ~5 Mo x 48 (et non pas 200Mo x 50) car Jenkins me conserve pour les 48 autres jobs seulement les métadonnées + console. C'est non seulement pratique, mais super important pour moi, car Sonar surveille aussi notre stabilité des builds, grâce au plugin "build stability plugin" : http://docs.codehaus.org/display/SON...ability+Plugin (ça me fait penser que mon patch de la 1.1.2 de ce plugin n'a pas été intégré pour l'instant Bah ici c'est assez simple : on demande une VM super puissante, et puis on obtient une VM pas si puissante que ça 6 mois après (j'attends toujours ma 2e VM d'ailleurs, parce que ma VM dual-core a du mal à gérer ma trentaine de jobs)
__________________
Nous sommes tous semblables, alors acceptons nos différences ! -------------------------------------------------------------- Mes liens : Blog | Page DVP | Suivez-moi sur Twitter Mes articles : Hudson | Sonar | Outils de builds Java Maven 3 | TeamCity| CitConf 2009 Mes critiques : Apache Maven |
||
|
00
|
|
|
#5 |
![]() ![]() Romain LinsolasJava craftsman Inscription : juillet 2005 Messages : 3 422 ![]() |
Il me semble que c'est le Nested View plugin :
https://wiki.jenkins-ci.org/display/...ed+View+Plugin
__________________
Nous sommes tous semblables, alors acceptons nos différences ! -------------------------------------------------------------- Mes liens : Blog | Page DVP | Suivez-moi sur Twitter Mes articles : Hudson | Sonar | Outils de builds Java Maven 3 | TeamCity| CitConf 2009 Mes critiques : Apache Maven |
|
00
|
Copyright © 2000-2012 - www.developpez.com