PIC Capgemini - Projects at LAM
Transcription
PIC Capgemini - Projects at LAM
L’Intégration Continue chez Capgemini Toulouse, 04/12/2012 PIC Capgemini Industrialisation : PIC Java mutualisée depuis 2008 à Toulouse 30 Projets dont 8 pour le CNES 2 projets avec une PIC C++ Lancement PIC France mutualisée juillet 2012 Services aux projets | Sector, Alliance, Offering Insert "Title, Author, Date" © 2010 Capgemini - Internal use only. All rights reserved. 2 PIC Java Units Tests Campaign Campaign of of unit unit tests tests with with technical non regression technical non regression Compilation 1 Source Source code code check check out out on on commit commit or or planned planned Integration Integration Tests Tests automated automated 2 Jenkins SVN Sonar Quality Tests Ant Ant Maven Maven 4 3 Artifactory Binary Repository Management Code Code Analysis Analysis && feed feed back back Tests Tests covering covering Code Code rules rules && standards standards inspection inspection Historic Historic of of the the analyses analyses Building Building Snapshot Snapshot // Release Release Pushing Pushing to to the the BRM BRM Sharing Sharing binaries binaries Managing licenses Managing licenses | Sector, Alliance, Offering © 2010 Capgemini. All rights reserved PIC Java | Sector, Alliance, Offering © 2010 Capgemini. All rights reserved Plugins pour Java Plugins Jenkins : • Ant/IvY/Gradle • SSH • Connecteurs SCM (CVS, SVN,...) Plugins Sonar: • • • • PMD CheckStyle FinfBugs Cobertura | Sector, Alliance, Offering Insert "Title, Author, Date" © 2010 Capgemini - Internal use only. All rights reserved. 5 PIC C++ SDDS Extract SVN Build CMake CPPUnit CMake Hudson Utilisée uniquement pour le build et les tests de non régression | Sector, Alliance, Offering Insert "Title, Author, Date" © 2010 Capgemini - Internal use only. All rights reserved. 6 Our scope in a Continuous Delivery approach Périmètre sCIP Complément Stack Indus | Sector, Alliance, Offering CIP JAVA Services map You are here If GO after technical meeting During project lifetime If specific technical needs On demand Automatique For quality engeneer & customer reports | Sector, Alliance, Offering © 2010 Capgemini. All rights reserved PIC Capgemini Questions | Sector, Alliance, Offering Insert "Title, Author, Date" © 2010 Capgemini - Internal use only. All rights reserved. 9 www.capgemini.com The information contained in this presentation is proprietary and confidential. It is for Capgemini internal use only. Copyright ©2010 Capgemini. All rights reserved. PIC Capgemini La mise en place d'une intégration continue vise, dès le début du projet, non seulement à intégrer le travail des différents développeurs (niveau local) mais aussi à intégrer l’application dans un environnement proche à celui prévu pour la mise en production (niveau global). Niveau Corporate • Visibilité accrue avec la présentation de tableaux de bord en temps réel et des tendances historiques des statistiques clés des projets en développement ou maintenance, • Reporting plus fin de l’équipe à management de l'état d'avancement de l’ensemble des projets, • Transparence vis-à-vis du client avec la possibilité de lui présenter un tableau de bord dédié à son projet, • Connaissance des composants et versions utilisés et des développements de l’ensemble des projets. Niveau Projet • Réduction des surcoûts liés aux risques techniques grâce à la détection en amont de problèmes d’intégration, évitant ainsi des corrections de dernière minute, • Augmentation, Traçabilité de la qualité grâce à l’identification de code de mauvaise qualité, • Confiance supérieure grâce à la tenue de tests unitaires. • La disponibilité de versions de démonstrations ou de tests (fonctionnels et techniques), • La possibilité pour l’équipe de développement de travailler manière incrémentale et itérative, • Standardisation Front & Back Office Niveau Client • Des clients demandent l’utilisation de plate-forme d’IC (Ex: La poste utilise ces plate-formes pour qualifier les livraisons des prestataires) | Sector, Alliance, Offering Insert "Title, Author, Date" © 2010 Capgemini - Internal use only. All rights reserved. 11 PIC Capgemini Les 10 commandements de l’IC Utiliser un référentiel de code source unique et partagé Tout le monde commit régulièrement dans le trunk Chaque commit déclenche le build sur la PIC Avoir un build automatisable et rapide Automatiser le déploiement Inclure les tests dans la construction Automatiser la construction Tester dans un environnement identique à la prod Rendre aisé l’accès aux derniers binaires Tout le monde peut voir ce qu’il se passe Subversion Maven 2/3 Jenkins/Hudson Artifactory/Nexus Sonar / Sites Maven | Sector, Alliance, Offering Insert "Title, Author, Date" © 2010 Capgemini - Internal use only. All rights reserved. 12 PIC C++ Euclide Tests Extract Build Doxygen Sonar •Unit •Smoke •Pre-int -> S.L (5) VMs -> CentOS Packaging CODEEN SDC-XX A disposition de la prod. Tests validation Tests integration SANDBOX (for 1 SDC only) Deployment •SDC-1 •SDC-2 •… Insert © 2010 Capgemini - 1 Plugins pour C++ et Python Plugins Jenkins : • • • • • • • • Xunit / CPPUnit tests unitaires) Doxygen (C++ doc) Python Nose test (Analyse de code Python) Gcovr (couverture de code) Pipeline View (enchainement des builds) Smoke (déploiement) Connecteurs SCM (CVS, SVN,...) Plugins Sonar: • • • • • • Python C/C++ SQALE (analyse de code) CPPCheck (analyse de code)* Vera++ (analyse de code)* CppNCSS (reporting)* * : lancés en shell par Jenkins | Sector, Alliance, Offering Insert "Title, Author, Date" © 2010 Capgemini - Internal use only. All rights reserved. 14