Damien THIESSON

22
Damien THIESSON L’intégrat ion Continuous Integration

description

Damien THIESSON. L’intégration continue. Continuous Integration. Pourquoi ?. Principes. Fonctionnement. Technos. Exemple. - PowerPoint PPT Presentation

Transcript of Damien THIESSON

Page 1: Damien THIESSON

Damien THIESSONDamien THIESSON

L’intégration continue

L’intégration continue

Continuous IntegrationContinuous Integration

Page 2: Damien THIESSON

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

Page 3: Damien THIESSON

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

Page 4: Damien THIESSON

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

Page 5: Damien THIESSON

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

Page 6: Damien THIESSON

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

Page 7: Damien THIESSON

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é

Page 8: Damien THIESSON

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 »

Page 9: Damien THIESSON

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

Page 10: Damien THIESSON

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

Page 11: Damien THIESSON

Pourquoi ? Principes Fonctionnement Technos Exemple

Comment cela fonctionne ?

Page 12: Damien THIESSON

Pourquoi ? Principes Fonctionnement Technos Exemple

Architecture d’un logiciel d’intégration

Page 13: Damien THIESSON

Pourquoi ? Principes Fonctionnement Technos Exemple

Un fonctionnement actif

Les développeurs « committent »

Le serveur d’intégration surveille le serveur SCM (Cron)

Page 14: Damien THIESSON

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

Page 15: Damien THIESSON

Pourquoi ? Principes Fonctionnement Technos Exemple

Le chef de projet analyse le reportingCas d’utilisation

Page 16: Damien THIESSON

Pourquoi ? Principes Fonctionnement Technos Exemple

Les technologies existantes

Hudson

CruiseControl / CruiseControl.NET

Apache Continuum

QuickBuild (open-source: LuntBuild)

Et beaucoup d’autres …

Page 17: Damien THIESSON

Pourquoi ? Principes Fonctionnement Technos Exemple

Exemple d’applicationJava / Maven 2 /

Hudson

Page 18: Damien THIESSON

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

Page 19: Damien THIESSON

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)

Page 20: Damien THIESSON

Pourquoi ? Principes Fonctionnement Technos Exemple

Installation de Maven 2

Plugins existants pour Eclipse, NetBeans, etc.

Configurer MAVEN_HOME et mettre à jour le PATH

Page 21: Damien THIESSON

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

Page 22: Damien THIESSON

Pourquoi ? Principes Fonctionnement Technos Exemple

Merci de votre attention !

Questions ?