Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
TRAVAUX PERSONNELS ENCADRÉS
SUPERVISEUR: HO TUONG VINH
ÉTUDIANT: NGUYEN QUOC KHAI
Étude & Implémentationd’une plateforme
pour intégration continuedans le développement de logiciels
17/14/15 NGUYEN QUOC KHAI -‐ P19
Sommaire
1. Contexte
2. Problématique
3. Intégration Continue
4. Modèle proposé
5. Expérimentation
6. Conclusion & Perspectives
7/14/15 NGUYEN QUOC KHAI -‐ P19 2
Intégration Continue
1. Contexte
2. Problématique
3. Intégration Continue
4. Modèle proposé
5. Expérimentation
6. Conclusion & Perspectives
7/14/15 NGUYEN QUOC KHAI -‐ P19 3
Contexte – Développement de logiciels
7/14/15 NGUYEN QUOC KHAI -‐ P19 4
oMéthode traditionnelne peut pas satisfaire les exigences des projets de développement actuel.
oL’efficacité des projets sont souvent faible.
oLes projets sont souvent en retard, dépassé le budget,…
oLe coûte de la maintenance est plus élevé que le coûte de développement.
Contexte -‐ Enquête de CHAOS en 2014
7/14/15 NGUYEN QUOC KHAI -‐ P19 5
• 16% logiciels sont succès, livrés à temps, lebudget, et satisfait des exigences
• 52% logiciels sont en retard, dépassé lebudget,…
• 32% logiciels sont échec!
Succeed, 16%
Challenged, 52%
Failed, 32%
Source: http://www.projectsmart.co.uk/docs/chaos-‐report.pdf
Contexte – Problèmes de développement de logiciels
7/14/15 NGUYEN QUOC KHAI -‐ P19 6
ØPourquoi est-‐il si long pour développement un système informatique?
ØPourquoi les coûts de développement sont-‐ils si élevés?
ØPourquoi ne trouve-‐t-‐on pas tous les bogues avant la livraison du système?
ØComment peut-‐on mesurer la progression du développement?
ØComment survivre avec cette mondialisation des marchés?
Intégration Continue
1. Contexte
2. Problématique
3. Intégration Continue
4. Modèle proposé
5. Expérimentation
6. Conclusion & Perspectives
7/14/15 NGUYEN QUOC KHAI -‐ P19 7
Problématique – Histoire d’un build cassé (1/5)
7/14/15 NGUYEN QUOC KHAI -‐ P19 8
LUNDI SOIR
Richard – un développeur dans un l’équipe de développement:
o Finir un tâche importante du projet
o Exécuter le build local et les tests unitaires
o Commettre ses modifications du CVS
o Rentre à la maison et fier de son travail !!!
Problématique – Histoire d’un build cassé (2/5)
7/14/15 NGUYEN QUOC KHAI -‐ P19 9
MARDI MARTIN – 9H15Sandeep, Jason, Eric et Chris – les membres dans le même groupe avec Richard:oMettre à jour CVS pour s’intégrer avec le nouveau code du Richardo Lancer son build localo Attendrons de voir “BUILD SUCCESSFUL” …o… mais ils voient:
Problématique – Histoire d’un build cassé (3/5)
7/14/15 NGUYEN QUOC KHAI -‐ P19 10
PROBLÈME ???
o Le build est cassé, car Richard a oublié d’ajouter une nouvelle bibliothèque du 3ème partie
oMais, Richard est hors du bureau et il va revenir à 13 heures !!!
Problématique – Histoire d’un build cassé (4/5)
7/14/15 NGUYEN QUOC KHAI -‐ P19 11
CONSÉQUENCES
◦ Sandeep, Jason, Eric et Chris ne peuvent pas travailler jusqu’à 13 heures lorque Richard arrive et soumet le lib manquant!
◦ Les gens sont libre dans 4 heures (ils ne travaillent pas!)
◦ 5 QA ne peuvent tester les nouvelles fonctions jusqu’à 14 heures.
Problématique – Histoire d’un build cassé (5/5)
7/14/15 NGUYEN QUOC KHAI -‐ P19 12
RÉSULTAT DU SEUL BUILD CASSÉ
oAgent: 45 heures-‐homme ~ $4.500
o Temps: Projet est glissé 5 heures sur la linge de temps ($100.000 d’amande par un jour de retard)
o Équipe:@#$%$%%!!!
Intégration Continue
1. Contexte
2. Problématique
3. Intégration Continue
4. Modèle proposé
5. Expérimentation
6. Conclusion & Perspectives
7/14/15 NGUYEN QUOC KHAI -‐ P19 13
Intégration Continue (1/4)oUn des pratiques d’Agile.
oPeut-‐être appliquer séparément
oL’idée principalede l’intégration continue:ØLes programmeurs dans une équipe vont intégrerleurs code plusieurs fois par jour.
ØChaque intégration va vérifier par un automatiquebuild pour détecter les erreurs le plus rapidementpossible.
7/14/15 NGUYEN QUOC KHAI -‐ P19 14
Intégration Continue (2/4)
7/14/15 NGUYEN QUOC KHAI -‐ P19 15
« Continuous Integration is a software development practice wheremembers of a team integrate their work frequently, usually each personintegrates at least daily -‐ leading to multiple integrations per day. Eachintegration is verified by an automated build (including test) to detectintegration errors as quickly as possible. Many teams find that thisapproach leads to significantly reduced integration problems and allows ateam to develop cohesive software more rapidly. »
<Martin Fowler, Continuous Integration, 2000>
Intégration Continue (3/4)
7/14/15 NGUYEN QUOC KHAI -‐ P19 16
1. Développeur commettre son code vers uncontrôle de code source.
2. CI système prend le code source, fait lebuild automatique
3. CI système lance des tests de la façonautomatiquement.
4. Le résultat des tests et aussi le statu duprojet va annoncer au l’équipe.
Source: http://www.meranetworks.com/services/processes/integration
Intégration Continue (4/4)
7/14/15 NGUYEN QUOC KHAI -‐ P19 17
Source: https://blog.sei.cmu.edu/post.cfm/continuous-‐integration-‐in-‐devops
CI – 11 pratiques de l’intégration continue
7/14/15 NGUYEN QUOC KHAI -‐ P19 18
1. Maintenir tous les code sources dans un référentiel unique
2. Automatiser le build
3. Rendre le build autotestant
4. Tout le monde commet à la main-‐line chaque jour
5. Chaque commettre devrait construire la main-‐line sur une machine d’intégration
6. Fixer les builds cassés immédiatement
7. Maintenir le build rapide
8. Tester dans un environnement qui est une copie de la production
9. Assurer qu’il est facile pour quiconque d’obtenir le dernière exécutable
10. Tout le mondepeut voir ce qu'il se passe
11. Automatiser le déploiement
CI – Avantages de l’intégration continue
7/14/15 NGUYEN QUOC KHAI -‐ P19 19
La plupart des projets de logiciels échouent parce qu'ils sont en retard, dépassent le budget, ousont incapables de répondre aux exigences. L’intégration continue permet de:
o Savoir où nous sommes. Ce qui fonctionne, ce qui ne fonctionnepas et combien de bogues
o Réduire le temps pour détecter des erreurs et leurs fixer
o Réduire le glissement de calendrier
o Réduire le temps de développement et de frapper le marché avant que les concurrents
o Ajouter plus de fonctionnalités rapidement, donner un feedback rapide
CI – Outils
7/14/15 NGUYEN QUOC KHAI -‐ P19 20
Category Open Source Outils ComercialOutils
CI Server Jenkins – Hudon – Cruise Control TeamCity – Bamboo – TFS
Source Code Repository Subversion –Github Polytron – Version Control
Build Tools Maven -‐ Ant MSBuild
Unit Testing TestNG – Junit – NUnit JTest
Functional Testing Selenium – Watir Quick Test – Silk Test
Issue Tracking SonarQube – Bugzilla Quality – Center
Security Testing RatProxy – WebScarab AppScan – WebInspect
Static Code Analysis FindBugs – PMD – CheckStyle Fortify Source Code Analyzer
Intégration Continue
1. Contexte
2. Problématique
3. Intégration Continue
4. Modèle proposé
5. Expérimentation
6. Conclusion & Perspectives
7/14/15 NGUYEN QUOC KHAI -‐ P19 21
Modèle proposé – Plateforme de Jordi Cuenca-‐Aubets
7/14/15 NGUYEN QUOC KHAI -‐ P19 22
Souce: http://www.sonatype.org/nexus/2015/03/20/free-‐continuous-‐integration-‐platform-‐at-‐a-‐glance/
Modèle proposé (1/3)
7/14/15 NGUYEN QUOC KHAI -‐ P19 23
Modèle proposé (2/3)
7/14/15 NGUYEN QUOC KHAI -‐ P19 24
Modèle proposé (3/3)oAvec le rôle de développeur, on utiliseNetBeans pour réaliser un projet un utilisant lalangage Java. De plus, on utilise TestNG pour lestests unitaires, Maven pour la gestion etl’automatisation deproduction deprojet.
oAvec le rôle de serveur, on va installer desservices comme: Jenkins, Subversion, ApacheTomcat, Sonarqube…
oPour la notification automatique, on utilisel’émail.
14/07/2015 NGUYEN QUOC KHAI -‐ P19 25
Modèle proposé – Comme ça marche?
14/07/2015 NGUYEN QUOC KHAI -‐ P19 26
oÉtape 1: Le développeur prend le code source de serveur vers Subversion. Ensuite, il va modifierquelques choses ou développer une nouvelle fonction, réaliser un tâche, … Après cela, il vacommettre son modifié au serveur.
oÉtape 2: Subversion gère tous les fichiers du projet et aussi des changements.
oÉtape 3: Jenkins prend le code soude vers Subversion. Il fait un build et lance aussi des testsunitaires. S’il y a des erreurs, Jenkins va annoncer aux tous les membres du projet. Jenkins faitaussi le lien avec SonarQubequi va analyser la qualité de code source.
oÉtape 4: Après avoir lancé le projet, Jenkins va envoyer un émail au l’équipe de développementpour leurs informer de l’état du projet.
Intégration Continue
1. Contexte
2. Problématique
3. Intégration Continue
4. Modèle proposé
5. Expérimentation
6. Conclusion & Perspectives
7/14/15 NGUYEN QUOC KHAI -‐ P19 27
Expérimentation -‐ Subversion
7/14/15 NGUYEN QUOC KHAI -‐ P19 28
Expérimentation -‐ Jenkins
7/14/15 NGUYEN QUOC KHAI -‐ P19 29
Expérimentation -‐ SonarQube
7/14/15 NGUYEN QUOC KHAI -‐ P19 30
Intégration Continue
1. Contexte
2. Problématique
3. Intégration Continue
4. Modèle proposé
5. Expérimentation
6. Conclusion & Perspectives
7/14/15 NGUYEN QUOC KHAI -‐ P19 31
Conclusion & PerspectivesNous avons atteint les objectifs assignés au départ pour ce travail:
oÉtudier l’intégration continue
oProposer une conception pour une plateforme d’intégration continue
oImplémenter cette conception
Dans l’avenir, on va continuer de développer cette plateforme pour:
oAppliquer dans la réalité
oCréer et lancer des tests fonctions automatique
oAjouter des autres outils comme: RedMine, Nexus, OpenDJ, …
7/14/15 NGUYEN QUOC KHAI -‐ P19 32
Références[1].Martin Fowler, Continuous Integration, 05-‐2006
[2]. Jordi Cuenca-‐Aubets, Free Continuous Integration Platform at a Glance, 03-‐2015
[3]. Preetam Palwe, Aftek Limited, Continuous Intergration: Improving Software Quality and ReducingRisk
[4]. Lasitha Ishan Petthawadu, Configure Jenkins with SonarQube for static code analysis andintegration, 05-‐2014
[5]. C. Aaron Cois, Continuous Integration in DevOps, 01-‐2015
[6]. Slava Imeshev, Continuous Integration – Benefits, Challenges and Best Practices, 07-‐2006
[7]. Chistian Rehn, Continuous Integration: Aspects in Automation and Configuration Management, 02-‐2012
[8]. Thomas Stiehm and Gene Gotimer, Building Security In Using Continuous Integration, 2010.
7/14/15 NGUYEN QUOC KHAI -‐ P19 33
RemerciementsJe tiens à exprimer ma profonde gratitude et mes sincèresremerciements à mon encadreur Monsieur HO Tuong Vinhpour tout le temps qu'il m’a consacré, leur directiveprécieuse, et pour la qualité de leur suivi tout au long de laréalisation de ce travail.
7/14/15 NGUYEN QUOC KHAI -‐ P19 34
Merci de votre aimable attention !!!
7/14/15 NGUYEN QUOC KHAI -‐ P19 35