Omnilog 2016 - Apéro techno : Rex FFF sur l'intégration continue
-
Upload
xavier-callens -
Category
Engineering
-
view
60 -
download
1
Transcript of Omnilog 2016 - Apéro techno : Rex FFF sur l'intégration continue
Intégration continue
Mercredi 5 octobre 2016
Apéro techno
Continuous Integration
Continuous Delivery
Continuous Deployment
C'est quoi pour vous ?
Définition
Développement Intégration
Développement
Intégration
Intégration classique
Intégration continue
Définition
« L'intégration continue est une pratique en génie logiciel, qui consiste à faire en sorte que les développeurs intègrent
fréquemment leurs travaux à l'application »
Définition
Définition
Agilité DevOps
Qualité logicielle
Software Craftsmanship
Intégration
continue
Référentiel de sources
Automatisation du build
Des tests et encore des tests
Contrôle de la qualité du code
Packaging
Indicateurs, métriques et
tableau de bord
Dev Integ Recette PROD
Gestion de configuration
Gestion des dépendances
Pourquoi ?Nombreuses taches répétitives et pénibles
Perte de temps à traiter les problèmes de livraison, de configuration
Risque élevé d’erreurs humaines
Conflits récurrents entre Dev et Ops sur les problématiques de déploiement
Besoin d’augmenter la fréquence des livraisons #Agilité
« Les gros changements créent de gros problèmes, des petits changements créent de petits problèmes »
Par quoi commencer ?
Savoir définir et s’approprier collectivement des règles de développement=> tests unitaires, codage, nommage,…
Toute activité qui n'apparaît qu'au moment d'une livraison intermédiaire et que l'équipe vit comme longue et pénible est candidate pour être prise en compte au titre de l'intégration continue
Avoir une stratégie de test partagée (développeur, métier, exploitants)
Partager les objectifs de l’intégration continue
Compléter et améliorer en continu le processus d’intégration et de déploiement
Disposer des bonnes compétences pour avancer de manière efficace
Identifier les outils disponibles en fonction du contexte techno
Outils
« L'intégration continue n'est pas en premier lieu une question d'outil mais d'attitude »
Exemple
Définition d’objectifs de qualité :
Couverture de tests de 80%
D’ici à 3 mois, tous les développeurs ont écrit 20 tests unitaires
D’ici à 3 mois, tous les bugs rencontrés amèneront à l’écriture d’un test
Tests automatiques :
Tests unitaires demandés à chaque dev sur tous les nouveaux développement
Tests fonctionnels Bihat sur les fonctionnalités clés
Qualité du code :
Scrutinizer sur tous les projets GitHub PHP
Relecture systématique du code par 2 dévs avant chaque merge
Lancement automatique des tests et de l’analyse de qualité lors de chaque PR (Pull Request)
Intégration Continue
Fédération Française de Football
Le workflow
0..n Runners
Dev
VM
Integ
Preprod
Prod
Dans Gitlab ça donne quoi ?
Dans Gitlab ça donne quoi ?
Dans Gitlab ça donne quoi ?
Dans Gitlab ça donne quoi ?
Pourquoi ? Enjeux et bénéfices• De plus en plus de projets• Besoin de pouvoir avancer rapidement• Diminuer la durée entre l’expression du besoin et le
déploiement
Les étapes de la mise en oeuvre• Avant mon arrivée automatisation du déploiement de
fff.fr• en 2015, migration des dépôts git sur gitlab.• Création de minisites.
• Changement de postes de travail• Utilisation de la CI Gitlab pour déployer sur integ et
preprod• Paramétrage du déploiement auto au tag
Difficultés • Techniques• Pas de nouveau serveur possible• Zéro budget• Possibilité d’avoir beaucoup de taches en parallèle
• Organisationnelles• Le temps de formation sur cette nouvelle plateforme
Les prochaines étapes• Depuis mon départ de la FFF
• Structuration de l'équipe (rôles scrum master et développeur)
• Ajout manuel d'un fichier CHANGELOG
• Ce qui viendra• Automatisation des étapes de MEP (CHANGELOG, branches
de hotfix ...)
MERCI !
Questions ?