Usine de développement et       intégration continue           Djamel Zouaoui             Antoine Véret
Plan•     Enjeux et constats•     Principes de fonctionnement•     Déclinaisons technologiques•     Aller plus loin© Unive...
Enjeu : Diminuer le turn-over• Une approche qui permet de :        – Gérer le risque de perte de connaissance             ...
Enjeu : Le travail en équipe          Individualité                      VS           Collectif© Université du Système d’I...
Enjeu : La qualité• Risque opérationnel        « Des clients de BNP Paribas débités ou crédités par erreur » (février 2009...
Enjeux : productivité & intégration• Productivité        – Recentrer ses activités sur de la valeur ajoutée        – Rédui...
Plan•     Enjeux et constats•     Principes de fonctionnement•     Déclinaisons technologiques•     Aller plus loin© Unive...
Vue d’ensemble                                              Intégration                                               cont...
L’intégraton continue« Une démarche visant à intégrer le code à chaque instant plutôt           qu’une fois par semaine ou...
Fonctionnement de l’UDD                                               Les développeurs                                    ...
L’usine de développement : des outils                                                                 Récupérer           ...
Juste une question d’outils ?© Université du Système d’Information                                   12
Instaurer une culture du Build• Création d’un rituel autour de l’usine     – « Celui qui fait échouer le build paye les cr...
Ca compile, ça fonctionne ?© Université du Système d’Information                                 14
Test Driven Development                                         Ecrire                                        test en     ...
Test unitaires automatisés                        Tests unitaires : cycle TDD répété plusieurs                            ...
En résumé : En amont toute !  Alors que les méthodologies traditionnelles positionnent les phases          d’intégration, ...
Plan•     Enjeux et constats•     Principes de fonctionnement•     Déclinaisons technologiques•     Aller plus loin© Unive...
Différentes approches     MS Team Foundation Server                     Open source (.Net et Java)•     Usine de développe...
Microsoft Team Foundation Server (TFS)                                                                           TFS via W...
Déclinaison .Net avec briques OpenSource                                                                            Jira  ...
Déclinaison Java                                                                    (OpenSource et commercial)            ...
La mesure et le reporting© Université du Système d’Information                               24
Une UDD contextualisée•     On observe de plus en plus de synergies et de support multi-      technologies des outils de b...
Plan•     Enjeux et constats•     Principes de fonctionnement•     Déclinaisons technologiques•     Aller plus loin© Unive...
Etre opérationnel le premier jour• Installation en un click / master d’installation        – Installation scriptée        ...
Minimiser l’instabilité du build• Conserver un référentiel de sources « propre »• Empêcher un développeur de bloquer les a...
Une solution : le build incassable                                                                       Récupérer        ...
Evolutions incrémentales du schéma de                                   base de données• Principes        – Toutes les évo...
Le build profilé                                                                                         10 min           ...
Le build distribué                                                                                                        ...
Dans les nuages• Souplesse d’une infrastructure hébergée et extensible• Solutions complètes• Externaliser uniquement le bu...
Big visible chart & Extreme feeback device« Ou comment aligner l’équipe à l’aide d’indicateur visuels partagés »• Radiator...
Merci de votre attention© Université du Système d’Information                              36
Copyright•     Toutes les images sont la propriété exclusive de leurs auteurs respectifs.•     Nabaztag : © TPDK          ...
Prochain SlideShare
Chargement dans…5
×

USI Casablanca 2010 - Industrialisation et intégration continue

1 549 vues

Publié le

Publié dans : Technologie
  • Soyez le premier à commenter

USI Casablanca 2010 - Industrialisation et intégration continue

  1. 1. Usine de développement et intégration continue Djamel Zouaoui Antoine Véret
  2. 2. Plan• Enjeux et constats• Principes de fonctionnement• Déclinaisons technologiques• Aller plus loin© Université du Système d’Information 2
  3. 3. Enjeu : Diminuer le turn-over• Une approche qui permet de : – Gérer le risque de perte de connaissance • Standardiser, capitaliser et augmenter la pérennité des développements – Conserver l’humain au centre de la démarche • Motivation • Amélioration continue© Université du Système d’Information 3
  4. 4. Enjeu : Le travail en équipe Individualité VS Collectif© Université du Système d’Information 4
  5. 5. Enjeu : La qualité• Risque opérationnel « Des clients de BNP Paribas débités ou crédités par erreur » (février 2009) « Bug sur le réseau Orange et France Télécom » (février 2010) « Gros bug informatique à la SNCF aujourd’hui » (mai 2010)• Mesurer la qualité – Disposer de métriques© Université du Système d’Information 5
  6. 6. Enjeux : productivité & intégration• Productivité – Recentrer ses activités sur de la valeur ajoutée – Réduire les tâches manuelles et répétitives• Difficultés de l’intégration – Faire disparaitre les phases dintégration – Minimiser les risques et efforts de mise en production© Université du Système d’Information 6
  7. 7. Plan• Enjeux et constats• Principes de fonctionnement• Déclinaisons technologiques• Aller plus loin© Université du Système d’Information 7
  8. 8. Vue d’ensemble Intégration continue Usine de Tests automatisés développement Mesure de la qualité© Université du Système d’Information 8
  9. 9. L’intégraton continue« Une démarche visant à intégrer le code à chaque instant plutôt qu’une fois par semaine ou par mois »
  10. 10. Fonctionnement de l’UDD Les développeurs compilent et testent Les développeurs sur leur poste Les développeurs codent sur leur déposent le code IDE sur leur modifié dans le poste de travail référentiel de source L’usine de build Les développeurs récupère l’ensemble récupèrent le code du code L’usine compile, teste et analyse le code L’usine génère les packages livrables ainsi que la documentation et les stocke dans le référentiel local© Université du Système d’Information 10
  11. 11. L’usine de développement : des outils Récupérer les dépendances Gestionnaire Build Compiler de sources Serveur Référentiel Build d’intégration Exécuter les tests binaires Local continue Vérifier la qualité du code Packager Notifications Déployer Plateforme Documenter de tests Build Documentation© Université du Système d’Information & Indicateurs 11
  12. 12. Juste une question d’outils ?© Université du Système d’Information 12
  13. 13. Instaurer une culture du Build• Création d’un rituel autour de l’usine – « Celui qui fait échouer le build paye les croissants…ou le thé  »• Responsabilisation des développeurs – « Le build est cassé…ma priorité d’ordre 1 est de le réparer » – Alignement de l’équipe sur la qualité du code – Continous integration Game13
  14. 14. Ca compile, ça fonctionne ?© Université du Système d’Information 14
  15. 15. Test Driven Development Ecrire test en échec Faire Remanier le code passer le test© Université du Système d’Information 15
  16. 16. Test unitaires automatisés Tests unitaires : cycle TDD répété plusieurs fois pour chaque fonctionnalité Ecrire test en Ecrire échec Faire test de passer le recette Faire tests de Remanieren échec le code passer recette le test Nouveau cycle répété à chaque nouvelle fonctionnalité © Université du Système d’Information 16
  17. 17. En résumé : En amont toute ! Alors que les méthodologies traditionnelles positionnent les phases d’intégration, de qualité et de tests en bout de chaineL’intégration continue permet : – L’intégration des sources en amont du processus de livraison – De contrôler la qualité en amont du processus de la livraison – De déployer l’application en amont du processus d’intégration – D’accéder à une application fonctionnelle en amont du processus de recette© Université du Système d’Information 18
  18. 18. Plan• Enjeux et constats• Principes de fonctionnement• Déclinaisons technologiques• Aller plus loin© Université du Système d’Information 19
  19. 19. Différentes approches MS Team Foundation Server Open source (.Net et Java)• Usine de développement clef en • Socle incrémental main – Construction itérative du socle en – Outillage complet packagé réponse à des douleurs/besoins – Intégration totale à Visual Studio (assemblage de briques OSS)• Guidage méthodologique – Un projet TFS repose sur le choix • Des outils open source d’une méthodologie – Des coûts réduits – Le template accompagne dans l’adoption de la méthodologie – Une communauté réactive et à l’écoute• Pilotage poussé – Des outils extensibles – Toutes les métriques sont historisées dans une base SQL Server – Elles sont toutes accessibles pour la création de rapports personnalisés avec Reporting Services© Université du Système d’Information 20
  20. 20. Microsoft Team Foundation Server (TFS) TFS via Work Item TFS via Sharepoint TFS viaVisual Studio MS Team test Source code + tests Tests de dév. Référentiel de Référentiel de automatisés tâches / bug documentation Développeur TFS via TFS via Team Build Code Analysis TFS Exécution des Gestionnaire Gestionnaire contrôles des sources de build qualitéVisual Studio Source code TFS TFS + tests Développeur Référentiel Tests de Dépendances des artefacts recette Livraison de automatisés l’incrément © Université du Système d’Information pour l’intégration 21
  21. 21. Déclinaison .Net avec briques OpenSource Jira Confluence Nunit Ou Excel Ou WikiVisual Studio NCover Source code + tests Tests de dév. Référentiel de Référentiel de automatisés tâches / bug documentation Développeur Cruise FXCop Control.net NDepend Subversion (SVN) Exécution des Gestionnaire Gestionnaire contrôles des sources de build qualitéVisual Studio Source code Cruise Fitnesse Control.net ou GreenPepper + tests Développeur Référentiel Tests de Dépendances des artefacts recette Livraison de automatisés l’incrément © Université du Système d’Information pour l’intégration 22
  22. 22. Déclinaison Java (OpenSource et commercial) Jira Confluence Junit Ou Excel Ou WikiEclipseet Maven TestNG Source code + tests Tests de dév. Référentiel de Référentiel de automatisés tâches / bug documentation Développeur Hudson Sonar et Maven XDepend Subversion (SVN) Exécution des Gestionnaire Gestionnaire contrôles des sources de buildEclipse qualitéet Maven Source code Fitnesse Nexus ou GreenPepper + tests Développeur Référentiel Tests de Dépendances des artefacts recette Livraison de automatisés l’incrément © Université du Système d’Information pour l’intégration 23
  23. 23. La mesure et le reporting© Université du Système d’Information 24
  24. 24. Une UDD contextualisée• On observe de plus en plus de synergies et de support multi- technologies des outils de build et de reporting Ruby, Flex, JavaScript, PLSQL ... … mais aussi iPhone, iPad, Android, etc• Principaux outils d’intégration continue – Team Fundation Server, Hudson, TeamCity, Bamboo, CruiseControl, Pulse, …• La démarche se décline selon les contextes – Méthodologie projet – Technologies utilisées – Organisation (ex : offshore)• L’important étant de faire de l’intégration continue !© Université du Système d’Information 25
  25. 25. Plan• Enjeux et constats• Principes de fonctionnement• Déclinaisons technologiques• Aller plus loin© Université du Système d’Information 26
  26. 26. Etre opérationnel le premier jour• Installation en un click / master d’installation – Installation scriptée – Arborescence et configuration identique sur tous les postes de travail de l’équipe• Solutions de packaging des IDE 1. Choix d’une distribution Eclipse • SpringIDE chez SpringSource • Maven studio pour Eclipse chez Sonatype • … 2. Provisionning des plugins Eclipse avec Nexus© Université du Système d’Information 27
  27. 27. Minimiser l’instabilité du build• Conserver un référentiel de sources « propre »• Empêcher un développeur de bloquer les autres• Favoriser l’utilisation décomplexée du référentiel de sources Gestionnaire de sources© Université du Système d’Information 28
  28. 28. Une solution : le build incassable Récupérer les dépendances Gestionnaire Compiler de sources Serveur protégé d’intégration Continue Exécuter les tests BuildDéveloppeurs© Université du Système d’Information 29
  29. 29. Evolutions incrémentales du schéma de base de données• Principes – Toutes les évolutions du schéma de base de données sont versionnées dans le référentiel de source – Automatisation de la création et des évolutions de version du schéma – Mise à jour incrémentale automatique• Outils – Team system Database –© Université du Système d’Information 31
  30. 30. Le build profilé 10 min Build rapide : tests unitaires nuits Build documentation 4h Gestionnaire Build tests intégration de sources Serveur Build d’intégration nuits Local continue Build qualimétrie A la demande Build complet A la demande ... Build packaging ...© Université du Système d’Information 32
  31. 31. Le build distribué  Build documentation 240 Agent Build tests intégration 10 Gestionnaire Build rapide : tests unitaires de sources ServeurBuild d’intégration Local Continue (maître) Build qualimétrie  Build complet  Agent © Université du Système d’Information Build packaging 33
  32. 32. Dans les nuages• Souplesse d’une infrastructure hébergée et extensible• Solutions complètes• Externaliser uniquement le build – Machine virtuelle prête à l’emploi – Plugin Hudson EC2• Ecosystème Ruby très outillé© Université du Système d’Information 34
  33. 33. Big visible chart & Extreme feeback device« Ou comment aligner l’équipe à l’aide d’indicateur visuels partagés »• Radiator (Sonar, Hudson, …)• AmbientOrb• Nabastaz© Université du Système d’Information 35
  34. 34. Merci de votre attention© Université du Système d’Information 36
  35. 35. Copyright• Toutes les images sont la propriété exclusive de leurs auteurs respectifs.• Nabaztag : © TPDK • http://www.customxp.net/PngFactory/icone-png-5235-Nabaztag-02-TPDK.html• AmbientOrb • http://www.thinkgeek.com/gadgets/electronic/5da2/• Logos : aux compagnies respectives• Photos d’écrans Sonar, Eclipse, … aux auteurs des produits respectifs.• Autres images et contenus : Octo Technology.© OCTO Technology - Université du Système d’Information 37

×