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

Documents pareils