220 likes | 316 Views
Damien THIESSON. L’intégration continue. Continuous Integration. Pourquoi ?. Principes. Fonctionnement. Technos. Exemple.
E N D
Damien THIESSON L’intégration continue ContinuousIntegration
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." Wikipedia "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." Documentation CruiseControl.NET
Pourquoi ? Principes Fonctionnement Technos Exemple Plan Les 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 Des exigences en amont • Capacité de reporting • Capacité de realease en continu Pourquoi l’intégration continue ? • 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 Intégration Intégration Spécifications Spécifications Développement Développement Le schéma de développement « classique » Les grands principes
Pourquoi ? Principes Fonctionnement Technos Exemple Les tests de type « white box » • Les tests unitaires L’importance des tests • 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 « white box » Les tests de type « black box » • Les tests fonctionnels • Les tests de montée en charge • Les tests de non-régression
Pourquoi ? Principes Fonctionnement Technos Exemple Serveur de test Architecture de développement Serveur d’intégration Serveur de recette Postes de dev Serveur de production SCM
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 Cas d’utilisation Le développeur soumet une modification $ Gcc –c *.c –o test Compiling… Compilation Sucessfull Testing… Junit tests … OK Integration tests … OK Performance tests … OK Serveur de test Code Inspection … 86% Deploying in test environnement … OK Serveur d’intégration Serveur de recette Serveur de production Commit 1 Postes de dev Notification Vérification des modifs 2 6 Déploiement Build + Tests 5 4 Update SCM 3
Pourquoi ? Principes Fonctionnement Technos Exemple Cas d’utilisation Le chef de projet analyse le reporting
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’application Java / 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érences http://www.scribd.com/doc/445931/Principes-de-lintegration-Continue http://fr.wikipedia.org/wiki/Intégration_continue http://dcabasson.developpez.com/articles/java/maven/introduction-maven2/ http://hudson.dev.java.net/ http://weblogs.java.net/blog/2007/02/04/maven-2-integration-hudson http://linsolas.developpez.com/articles/hudson/ Illustrations http://www.kds-corp.com/ http://www.bonvin-computer.fr/images/serveur1.jpg http://www.geekandhype.com/HPMediaSmartServer.jpg
Pourquoi ? Principes Fonctionnement Technos Exemple Merci de votre attention ! Questions ?