Concept de l’Intégration Continue

1 053 vues

Publié le

Réflexion sur l'Intégration Continue en phase de projet

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 053
Sur SlideShare
0
Issues des intégrations
0
Intégrations
6
Actions
Partages
0
Téléchargements
50
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Concept de l’Intégration Continue

  1. 1. Concept de l’Intégration Continue Publié par Frédéric Sagez Dernière mise à jour le 16/11/2010
  2. 2. Introduction La solution BluePrints est utilisée pour identifier et organiser des unités logiques de travail qui seront exécutées pendant certaines phases d’un projet. Ces unités logiques de travail seront ensuite planifiées et gérées tout au long du cycle de vie du projet. Depuis le début de la création de la plate-forme Java/JEE, le programme Java BluePrints défini le modèle de programmation d'application pour les solutions de bout en bout en utilisant la technologie Java. Les outils BluePrints indique les lignes directrices, les modèles et le code pour les scénarios d'application dans le monde réel, vous permettant de construction robuste, évolutive et des solutions portables. Les BluePrints sont disponibles gratuitement vous permettant ainsi d'apprendre les plans et la réutilisation du code dans vos propres applications. 2
  3. 3. Java BluePrints : le renforcement des programmes Java portables 3 Rational Rational SSooffttwwaarree AArrcchhiitteecctt  Test unitaire et d’assemblage JJUUnniitt ((SSqqlUlUnnitit, , HHTTTTPPUUnniitt)) Analyse et couverture des tests CCoobbeerrttuurraa MMaavveenn 22 CCrruuiisseeCCoonnttrrooll EEcclliippssee  Génération de documentation automatique CChheecckkssttyyllee PPMMDD ++ FFiinnddBBuuggss Automatisation des builds et test de regressions  Environnement de développement intégré Profilage automatisé de code statique  Environnement de conception intégré JJaavvaaddoocc
  4. 4. Intégration Continue L'intégration continue est une technique consistant à vérifier qu’à chaque modification de code source que le résultat des modifications ne produit pas de régression de l'application en cours de développement : c’est maintenir une source unique de référentiel. Elle est issue de la pratique de l’eXtreme Programming, elle permet l’intégration de développements en continue.  Avantages  Intégration périodique multiplateformes (Scheduling)  Mise à jour du code depuis un gestionnaire de versioning  Vérification, compilation et tests unitaires d’une application  Gestion rigoureuse des développements : permet d’assurer la cohérence d‘une application  La compilation du code source n'est plus dépendante de la machine d'un développeur  Déploiement d’une application sur un serveur distant  Reporting des résultats  Inconvénients  Nécessite un développement rigoureux de la part des développeurs  Certains produits ne sont pas « multi-techno » ou « 100% » open source  Nécessite une administration du serveur d’intégration continue (Serveur dédié) 4
  5. 5. Principe de fonctionnement de l’Intégration Continue ININSSPPEECCTTIOIONN CCOOMMPPILILAATTIOIONN TTEESSTT PPAACCKKAAGGININGG DDEEPPLLOOIEIEMMEENNTT REFERENTIEL DE REFERENTIEL DE SOURCES SOURCES 5 1 1 - Détection de nouvelles intégrations dans le référentiel de sources 2 2 Création du Build suivant les étapes de construction de l’application 3 3 - Publication des résultats 1 3 2
  6. 6. Les serveurs d’Intégration Continue  Cruise Control Open source et gratuit : il permet de tester des applications JEE et des applications en .Net. Avantage : supporte bien plusieurs petits projets Inconvénient : plusieurs outils open source passent sous licence commerciale  Team City Open source et gratuit (avec limitation ou sous licence) : il permet de tester des applications JEE et des applications en .Net. Avantage : interfaçage et intégration pratique avec les logiciels Microsoft Inconvénient : nécessite d’acheter des licences pour utiliser pleinement le logiciel  Hudson Open source et gratuit : il permet de tester des applications JEE. Avantage : la multitude de plug-ins que l’on peut développer soi-même Inconvénient : un « build » instable peut quand même être déployé sur un serveur distant  Continuum (Fondation Apache) Open source et gratuit : il permet de tester des applications JEE. Avantage : constructions sur d’autres machines des « build » en mode distribué grâce à des agents de constructions Inconvénient : interface peu conviviale 6
  7. 7. Démarrer un projet Java avec un serveur d’intégration continue Il est nécessaire d’avoir des éléments utiles pour bien démarrer un projet Java avec un serveur d’intégration continue : o Il faut un gestionnaire de code source, o Un Serveur d’Intégration continue, o La nécessité de vérifier le code source et de pouvoir le compiler, (mais cela n’est pas une nécessité) o De permettre l’exécution de tests unitaires, o De « Packager » et déployer un « build » sur un serveur distant, o D’utiliser un Dashboard de suivi des opérations, o De communiquer les résultats sous forme de compte rendu, o De pouvoir alerter par n’importe qu’elle type de flux les différents intervenants (email, SMS, flux RSS., etc.) 7
  8. 8. Exemple d'intégration d'applications en mode continue 8 CHECKOUT / COMM IT Serveur de versioning Serveur d’Intégration Continue (CIS) Rapports Poste(s) de développement Serveur LDAP Publication Serveur distant Déploiement INTEGRATION CONTINUE Compte rendu Détection de la MAJ du référentiel de source
  9. 9. Cruise Control  Avantages II est le plus ancien serveur d’intégration continue. Il bénéficie ainsi d’une douzaine de plugins facilitant son intégration avec de nombreuses solutions de gestion de configuration et de stratégies de build. Il s’intègre parfaitement avec des outils de gestion de code source (exemple: CVS, SVN, ClearCase, etc.) et aussi avec des outils de build . (exemple: Ant, NAnt, Maven, etc.)  Inconvénients Là ou d’autres produits (Hudson, Continuum ou Team City) se configurent graphiquement, il encapsule toute la configuration dans un fichier unique de configuration. (Fichier config.xml) Quelques produits tiers contribuent cependant à une meilleur administration : • Une interface swing CC-Config qui permet d’administrer Cruise Control, en mettant à jour de façon persistante le fichier config.xml. • Un plugin Firefox Cruise Control Monitor qui permet le « Monitoring » du serveur d’intégration continue. Téléchargement sur le site de l’éditeur ThoughtWorks : http://cruisecontrol.sourceforge.net/download.html 9
  10. 10. La solution Cruise Control 10
  11. 11. Team City TeamCity est un système d'intégration continue dont le principal mérite est la facilité de mise en oeuvre, d'être très graphique, et de contenir quelques très bonnes idées.  Avantages •L'interface graphique « full » Web 2.0 et l'aspect visuel général •Les « COMMIT » pré-testés •Les différents Runners (construction de projet, recherche de duplicats, inspection, etc.) •La possibilité de tester les « build » sur le serveur avant de faire un check-in • L’intégration aux principaux environnements de développements (Plugin sous Eclipse et Microsoft Visual Studio) • Statistiques très complètes  Inconvénient(s) • Il n’est pas tout à fait gratuit, il existe une version « Entreprise » payante. (Utilisation limitée à 20 projets de configurations avec 20 utilisateurs et 3 agents) Téléchargement sur le site de l’éditeur Jet Brains : http://www.jetbrains.com/teamcity/download/index.html 11
  12. 12. La solution Team City 12
  13. 13. Conclusion (1/4) L’intégration continue est une pratique qui consiste à mettre à jour périodiquement, voir continuellement un environnement par un système de « build ». Elle permet de détecter immédiatement les bugs et de remonter des alertes. Cela permet de fournir au responsable de projet un état de l’avancement en temps réel du développement. On peut également y intégrer des tests unitaires qui permettront de vérifier que les nouvelles modifications n’ont pas d’effets de bords. 13
  14. 14. Conclusion (2/4) 14 Le processus de l’intégration continue a un mécanisme de feedback et toute l’équipe connaît le statut du dernier build, ce qui permet entre autres de savoir si le projet est dans le « vert » ou pas.
  15. 15. Conclusion (3/4) 15 De même, le feedback permet d’identifier des bugs au plus tôt car les impacts peuvent être très importants.
  16. 16. Conclusion (4/4) 16 Et cela permet aussi de connaitre de façon certaine le ou les développeurs incriminés…
  17. 17. Pour finir… Le concept de l’Intégration Continue et cette présentation ont été utilisés sur le projet TRANS@actions. 17

×