Dans un contexte agile, AXA France Service a mis en place une démarche d'intégration continue au sein de son Web Center. Lors de cette session, nous allons voir comment personnaliser le processus de Build en y incluant des tests unitaires, des métriques de qualité comme la couverture de code puis la déployer en continue avec le lab management de Team Foundation Server 2012.
4. Web Center
• Département IT créé en janvier 2011 à Lille
• Dédié au développement des applications Web et
mobiles d’AXA France
• 10 équipes projets, 105 personnes dont plus de
80 développeurs
• Delivery 2012 : + 17 000 j/h produit, + de 100
releases livrées en production
Intégration continue
5. Missions & Challenges
• Missions
– Développer des solutions métiers innovantes
– Maintenir le patrimoine applicatif
– Réduire le Time To Market
• Challenges
– Montée en charge très rapide
Industrialiser les développements
Contrôler la qualité de nos livrables
Intégration continue
6. Outils et axes de travail
AGILE DEVELOPPEMENT
MS Scrum 1.0 Visual Studio Ultimate
TFS
REPORTING INTEGRATION CONTINUE
Outils custom
Team Build
API TFS
Intégration continue
7. Principes et
apports de l’IC
Motivations
Principes et objectifs
Etapes d’une Build
Infrastructure générale
8. Motivations
• Projets à fortes intégrations SI
• Détecter au plus tôt les problèmes d’intégration
• Projets menés en Agile
• Livraisons fréquentes Automatiser les livraisons
• Accepter le changement en cours de projets
S’assurer de la non-régression fonctionnelle et de la
qualité constante du produit
Intégration continue
10. Etapes d’une Build
• Gain à chaque étape
Compilation
Exécution Contrôle Génération
du code à Publication Déploiement
des tests qualité du des
partir d’un des résultats automatique
automatisés code packages
référentiel
•Détection des •Suivi des problèmes •Suivi de la • Actions en cas de • Démonstration des
problèmes de régression qualité du code problème évolutions en
d’archivage au plus continue
tôt
Intégration continue
11. Infrastructure générale
1 : Check In (changements)
2 : Détection des changements
3 : Exécution de la Build
1 - Compilation
- Tests unitaires
Référentiel - Analyse du code
Poste
Gestion - Génération des packages
développeur
Configuration 4 : Notification des résultats
(rapport)
5 : Déploiement des packages
4 2
3
5
Serveur Serveur de
d’intégration déploiement
Intégration continue
12. Mise en œuvre de
l’IC avec TFS 2012
Types de Builds mise en place chez AXA
Composants impactés
Infrastructure
Démonstrations
13. Types de Build mise en place chez AXA
• Build d’intégration continue
Exécution des Contrôle
Compilation Publication Génération Déploiement
tests qualité du
du code des résultats des packages automatique
automatisés code
• Build planifiée
Exécution des Contrôle
Compilation Publication Génération Déploiement
tests qualité du
du code des résultats des packages automatique
automatisés code
• Build de livraison
Exécution des Contrôle
Compilation Publication Génération Déploiement
tests qualité du
du code des résultats des packages automatique
automatisés code
• Build de déploiement
Exécution des Contrôle
Compilation Publication Génération Déploiement
tests qualité du
du code des résultats des packages automatique
automatisés code
Intégration continue
14. Infrastructure mise en place chez AXA
• Les Builds sont réalisés par des agents
• Un agent de Build est un service Windows qui prend en charge le processus de Build.
• Les agents sont gérés par un contrôleur de Build
Intégration continue
15. Infrastructure
• Team Build
– Basé sur WorkFlow Foundation
– Exécute des activités dans un ordre spécifique
– Template de fichier au format XAML
• DefaultTemplate.xaml
• LabDefaultTemplate.xaml (lab management)
Intégration continue
16. Démonstrations de la mise en place d’une
Build de base
• Démo : Présentation de l’application EOL Partenariat
• Démo : Définition et paramétrage d’une build
• Démo : Lancement d’une build et obtention du
rapport
Exécution des Contrôle
Compilation Publication Génération Déploiement
tests qualité du
du code des résultats des packages automatique
automatisés code
Intégration continue
17. Démonstration de la customisation d’une
Build
• Démo : Ajout des rapports de qualité de code avec
nDepend
Exécution des Contrôle
Compilation Publication Génération Déploiement
tests qualité du
du code des résultats des packages automatique
automatisés code
Intégration continue
18. Démonstration de l’utilisation de l’API TFS
• Démo : Publication des résultats
Exécution Contrôle Publication Génération
Compilation Déploiement
des tests qualité du des des
du code automatique
automatisés code résultats packages
Intégration continue
19. Déploiement continue avec Lab
Management
• Composant de TFS proposant un système automatisé
d’environnement de recette
• Lab Management permet :
– Déployer l’installation sur une ou plusieurs VM à la fin de la build
– Exécuter des tests d’intégration
Exécution des Contrôle
Compilation Publication Génération Déploiement
tests qualité du
du code des résultats des packages automatique
automatisés code
Intégration continue
20. Conclusion
• Gains
– Meilleur suivi des problématiques d’archivage
– Suivis des indicateurs qualité par les équipes projet et par le
management
– Démonstration en continue
• Perspectives
– Intégration de l’équipe Tests/Qualif dans le processus avec Lab
Management
– Build multi technos / Plateforme
– Devops
Intégration continue
IC est un principe logiciel dans lequel les développeurs intègrent régulièrement leur code dans un référentiel, ce qui déclenche de multiples fabrications (Builds).Objectif majeur : Réduire la phase d’intégration en fin de développement