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 Insert "Title, Author, Date" 2010 Capgemini - Internal use only. All rights reserved. 2
PIC Java Units Tests Campaign of unit tests with technical non regression Compilation Source code check out on commit or planned Integration Tests automated 1 2 SVN Jenkins Sonar Binary Repository Management Building Snapshot / Release Pushing to the BRM Sharing binaries Managing licenses Ant Ant Maven Maven 4 3 Artifactory Quality Tests Code Analysis & feed back Tests covering Code rules & standards inspection Historic of the analyses 2010 Capgemini. All rights reserved
PIC Java 2010 Capgemini. All rights reserved
Plugins pour Java Plugins Jenkins : Ant/IvY/Gradle SSH Connecteurs SCM (CVS, SVN,...) Plugins Sonar: PMD CheckStyle FinfBugs Cobertura 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 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
CIP JAVA Services map If GO after technical meeting You are here During project lifetime If specific technical needs On demand Automatique For quality engeneer & customer reports 2010 Capgemini. All rights reserved
PIC Capgemini Questions 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) 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 Insert "Title, Author, Date" 2010 Capgemini - Internal use only. All rights reserved. 12
PIC C++ Euclide Extract Build Doxygen Sonar Tests Unit Smoke Pre-int-> S.L (5) VMs-> CentOS CODEEN Packaging SDC-XX A disposition de la prod. Tests validation Tests integration SANDBOX (for 1 SDC only) Deployment SDC-1 SDC-2 Insert 1 2010 Capgemini -
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 Insert "Title, Author, Date" 2010 Capgemini - Internal use only. All rights reserved. 14