Omnilog 2016 - Apéro techno : Rex FFF sur l'intégration continue

Post on 11-Apr-2017

56 views 1 download

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 ?