View
51
Download
0
Category
Preview:
DESCRIPTION
Damien THIESSON. L’intégration continue. Continuous Integration. Pourquoi ?. Principes. Fonctionnement. Technos. Exemple. - PowerPoint PPT Presentation
Citation preview
Damien THIESSONDamien THIESSON
L’intégration continue
L’intégration continue
Continuous IntegrationContinuous Integration
Pourquoi ? Principes Fonctionnement Technos Exemple
"L'intégration continue est un ensemble de pratiques utilisées en génie logiciel. Elles consistent à vérifier à 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."
"Une pratique considérant différemment l'intégration, habituellement connue comme pénible et peu fréquente, pour en faire une tâche simple faisant partie intégrante de l'activité quotidienne d'un développeur."
Wikipedia
Documentation CruiseControl.NET
Pourquoi ? Principes Fonctionnement Technos Exemple
PlanLes précurseurs de l’intégration continue
A quoi cela sert-il ?
Les grands principes
Comment cela fonctionne ?
Les technologies existantes
Démonstration
Pourquoi ? Principes Fonctionnement Technos Exemple
Petit retour en arrière …
Les précurseurs :
• Les outils de versionning• Les tests unitaires• Les outils de compilation• Inspection de code
Pourquoi ? Principes Fonctionnement Technos Exemple
Pourquoi l’intégration continue ?
Des exigences en amont• Capacité de reporting• Capacité de realease en continu• Réactivité face aux changements
Une maîtrise d’œuvre contrôlée• Coordination des équipes• Abstraction de la technique
Pourquoi ? Principes Fonctionnement Technos Exemple
Les grands principes
Le schéma de développement « classique »
Spécifications Développement Intégration
Développement
IntégrationSpécifications
Pourquoi ? Principes Fonctionnement Technos Exemple
L’importance des tests
Les tests de type « white box »
• Les tests unitaires• Les tests d’intégration• Les tests de performance• Les tests de qualité
Pourquoi ? Principes Fonctionnement Technos Exemple
L’importance des tests
Les tests de type « black box »
• Les tests fonctionnels• Les tests de montée en charge• Les tests de non-régression
Les tests de type « white box »
Pourquoi ? Principes Fonctionnement Technos Exemple
Architecture de développement
Postes de dev
SCM
Serveur d’intégration
Serveur de production
Serveur de recette
Serveur de test
Pourquoi ? Principes Fonctionnement Technos Exemple
Intégration réellement continue ?
Contributions (commits) règulières mais ponctuelles des développeurs
Consensus sur la fréquence de commit : au moins une fois par jour
Pourquoi ? Principes Fonctionnement Technos Exemple
Comment cela fonctionne ?
Pourquoi ? Principes Fonctionnement Technos Exemple
Architecture d’un logiciel d’intégration
Pourquoi ? Principes Fonctionnement Technos Exemple
Un fonctionnement actif
Les développeurs « committent »
Le serveur d’intégration surveille le serveur SCM (Cron)
Pourquoi ? Principes Fonctionnement Technos Exemple
Le développeur soumet une modification
Postes de dev
SCM
Serveur d’intégration
Serveur de production
Serveur de recette
Serveur de test
Cas d’utilisation
1 Commit
2 Vérification des modifs3 Update
4 Build + Tests$ Gcc –c *.c –o testCompiling…Compilation SucessfullTesting…Junit tests … OKIntegration tests … OKPerformance tests … OKCode Inspection … 86%Deploying in test environnement … OK
5 Déploiement
6 Notification
Pourquoi ? Principes Fonctionnement Technos Exemple
Le chef de projet analyse le reportingCas d’utilisation
Pourquoi ? Principes Fonctionnement Technos Exemple
Les technologies existantes
Hudson
CruiseControl / CruiseControl.NET
Apache Continuum
QuickBuild (open-source: LuntBuild)
Et beaucoup d’autres …
Pourquoi ? Principes Fonctionnement Technos Exemple
Exemple d’applicationJava / Maven 2 /
Hudson
Pourquoi ? Principes Fonctionnement Technos Exemple
A propos de Maven
Outil de build évolué
Approche déclarative
Pratiques standardisées
Nombreux plugins
Gestion des dépendances
Profils de déploiements
Pourquoi ? Principes Fonctionnement Technos Exemple
Installation de Hudson
Packages natifs disponibles sur la plupart des distributions Linux et BSD
Un simple WAR à déployer sur votre serveur d’application préféré (recommandé si vous avez déjà un AS qui tourne)
Pourquoi ? Principes Fonctionnement Technos Exemple
Installation de Maven 2
Plugins existants pour Eclipse, NetBeans, etc.
Configurer MAVEN_HOME et mettre à jour le PATH
Pourquoi ? Principes Fonctionnement Technos Exemple
Référenceshttp://www.scribd.com/doc/445931/Principes-de-lintegration-Continuehttp://fr.wikipedia.org/wiki/Intégration_continuehttp://dcabasson.developpez.com/articles/java/maven/introduction-maven2/http://hudson.dev.java.net/http://weblogs.java.net/blog/2007/02/04/maven-2-integration-hudsonhttp://linsolas.developpez.com/articles/hudson/
Illustrationshttp://www.kds-corp.com/http://www.bonvin-computer.fr/images/serveur1.jpghttp://www.geekandhype.com/HPMediaSmartServer.jpg
Pourquoi ? Principes Fonctionnement Technos Exemple
Merci de votre attention !
Questions ?
Recommended