SlideShare une entreprise Scribd logo
Intégration continue
Jeudi 27 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
Panorama
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
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éveloppements
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)
Retour d’expérience
Olivier CONDON
Release X.Y.Z
Service A
Service B
Site web
Fixtures
Deploy
BuildCommit
Deploy
Dépot
Intégration
US/Workitems
Pré-recette
Tests fonctionnels
automatiques
Build
Analyse qualité du code
Test
Recette
Demande de déploiement
Approbation
Deploy
Pourquoi ?
• Besoin d’avoir des résultats de tests fonctionnels en temps réel
=> validation US
• Besoin d’avoir un environnement dispo et à jour pour la pré-
recette
• Diminuer le temps perdu par l’équipe OPS à faire des
copier/coller et mise en conformité pour les déploiement sur les
environnements
• Sécuriser le process, éviter les erreurs humaines
• Améliorer la communication DEV-OPS
• Focaliser le temps des devs et des ops sur des tâches utiles
Etapes de mises en oeuvre
Obtenir des droits d’admin complet sur un serveur (IC)
Obtenir la confiance des OPS, expliquer la démarche
Mettre en place un build auto au commit sur un serveur de build
Déployer ces build auto sur le moteur de tests fonctionnels
Exécuter une analyse automatique et régulière du code
Etudier l’écosystème réseau / Droits / Domaines / AD / zones DMZ
avec les OPS, étudier leur process de déploiement manuel
Mettre en place un déploiement automatique sur
l’environnement d’intégration
Mettre en place un déploiement automatique à la
demande sur l’environnement de recette
Définir un workflow d’approbation consensuel
Mettre en place un déploiement automatique à
la demande sur l’environnement de production
Difficultés rencontrées
• Infrastructure réseau en mouvement
• VSTS en constante et rapide évolution
• Trouver un projet en pause, ou qui tolère une perte d’efficacité pendant la
transition
• Découvrir l’ancien rôle et définir le nouveau rôle du Release Manager
• Rassurer les DBA
Prochaines étapes
• Ajout dans le process auto de la seule partie manquante : SQL
 Permettre aux DBA de continuer d’assurer leur rôle de validateur des livraisons
 Poc terminé, RedGate sur la rampe de lancement
• Passage de TFS à GIT
 une branche par US
 Pull request forcés sur MASTER & DEV
 « Commiteur d’acier » ou relecture de code croisée
• IaC (Infrastructure as Code)
 Créer à la volée les environnements à la demande : 1 par branche de code
Merci !

Contenu connexe

Tendances

Qu'est ce qu'un logiciel de qualité
Qu'est ce qu'un logiciel de qualitéQu'est ce qu'un logiciel de qualité
Qu'est ce qu'un logiciel de qualité
Sylvain Leroy
 
Principes de L'intégration Continue
Principes de L'intégration ContinuePrincipes de L'intégration Continue
Principes de L'intégration ContinueXavier Warzee
 
Futur tunis
Futur tunisFutur tunis
Futur tunis
Marc Hage Chahine
 
Developement logiciel: comment livrer de la qualite ?
Developement logiciel: comment livrer  de la qualite ?Developement logiciel: comment livrer  de la qualite ?
Developement logiciel: comment livrer de la qualite ?
Innobec
 
BBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - PuppetBBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - Puppet
Olivier BAZOUD
 
Intégration continue
Intégration continueIntégration continue
Intégration continueKlee Group
 
Intégration continue transco
Intégration continue transcoIntégration continue transco
Intégration continue transcolaurent_opnworks
 
Model de qualité @ msdevmtl
Model de qualité @ msdevmtlModel de qualité @ msdevmtl
Model de qualité @ msdevmtl
MSDEVMTL
 
Rappels Modularisation application C/C++
Rappels Modularisation application C/C++Rappels Modularisation application C/C++
Rappels Modularisation application C/C++
Sylvain Leroy
 
20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?
LeClubQualiteLogicielle
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logiciels
Sylvain Leroy
 
Altran soirée du test logiciel - assez des c 05-10-17
Altran   soirée du test logiciel - assez des c 05-10-17Altran   soirée du test logiciel - assez des c 05-10-17
Altran soirée du test logiciel - assez des c 05-10-17
Marc Hage Chahine
 
Concept de l’Intégration Continue
Concept de l’Intégration ContinueConcept de l’Intégration Continue
Concept de l’Intégration Continue
Frédéric Sagez
 
[Agile Testing Day] Tests de charge
[Agile Testing Day] Tests de charge [Agile Testing Day] Tests de charge
[Agile Testing Day] Tests de charge
Cellenza
 
Pourquoi vous ne pouvez pas tester votre code
Pourquoi vous ne pouvez pas tester votre codePourquoi vous ne pouvez pas tester votre code
Pourquoi vous ne pouvez pas tester votre code
Rémi Lesieur
 
Introduction à la qualité logicielle (1/5)
Introduction à la qualité logicielle (1/5)Introduction à la qualité logicielle (1/5)
Introduction à la qualité logicielle (1/5)
Sylvain Leroy
 
[Agile Testing Day] Test Driven Development (TDD)
[Agile Testing Day] Test Driven Development (TDD)[Agile Testing Day] Test Driven Development (TDD)
[Agile Testing Day] Test Driven Development (TDD)
Cellenza
 
L'integration continue pour tous
L'integration continue pour tousL'integration continue pour tous
L'integration continue pour tous
Aurelien Navarre
 
JCertif 2012 : Integration continue avec Jenkins
JCertif 2012 : Integration continue avec JenkinsJCertif 2012 : Integration continue avec Jenkins
JCertif 2012 : Integration continue avec Jenkins
Rossi Oddet
 

Tendances (20)

Qu'est ce qu'un logiciel de qualité
Qu'est ce qu'un logiciel de qualitéQu'est ce qu'un logiciel de qualité
Qu'est ce qu'un logiciel de qualité
 
Principes de L'intégration Continue
Principes de L'intégration ContinuePrincipes de L'intégration Continue
Principes de L'intégration Continue
 
Futur tunis
Futur tunisFutur tunis
Futur tunis
 
Developement logiciel: comment livrer de la qualite ?
Developement logiciel: comment livrer  de la qualite ?Developement logiciel: comment livrer  de la qualite ?
Developement logiciel: comment livrer de la qualite ?
 
BBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - PuppetBBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - Puppet
 
Intégration continue
Intégration continueIntégration continue
Intégration continue
 
Intégration continue transco
Intégration continue transcoIntégration continue transco
Intégration continue transco
 
Model de qualité @ msdevmtl
Model de qualité @ msdevmtlModel de qualité @ msdevmtl
Model de qualité @ msdevmtl
 
Rappels Modularisation application C/C++
Rappels Modularisation application C/C++Rappels Modularisation application C/C++
Rappels Modularisation application C/C++
 
Normandy JUG integration Continue
Normandy JUG integration ContinueNormandy JUG integration Continue
Normandy JUG integration Continue
 
20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logiciels
 
Altran soirée du test logiciel - assez des c 05-10-17
Altran   soirée du test logiciel - assez des c 05-10-17Altran   soirée du test logiciel - assez des c 05-10-17
Altran soirée du test logiciel - assez des c 05-10-17
 
Concept de l’Intégration Continue
Concept de l’Intégration ContinueConcept de l’Intégration Continue
Concept de l’Intégration Continue
 
[Agile Testing Day] Tests de charge
[Agile Testing Day] Tests de charge [Agile Testing Day] Tests de charge
[Agile Testing Day] Tests de charge
 
Pourquoi vous ne pouvez pas tester votre code
Pourquoi vous ne pouvez pas tester votre codePourquoi vous ne pouvez pas tester votre code
Pourquoi vous ne pouvez pas tester votre code
 
Introduction à la qualité logicielle (1/5)
Introduction à la qualité logicielle (1/5)Introduction à la qualité logicielle (1/5)
Introduction à la qualité logicielle (1/5)
 
[Agile Testing Day] Test Driven Development (TDD)
[Agile Testing Day] Test Driven Development (TDD)[Agile Testing Day] Test Driven Development (TDD)
[Agile Testing Day] Test Driven Development (TDD)
 
L'integration continue pour tous
L'integration continue pour tousL'integration continue pour tous
L'integration continue pour tous
 
JCertif 2012 : Integration continue avec Jenkins
JCertif 2012 : Integration continue avec JenkinsJCertif 2012 : Integration continue avec Jenkins
JCertif 2012 : Integration continue avec Jenkins
 

Similaire à Omnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continue

Industrialisez vos projets Php
Industrialisez vos projets Php Industrialisez vos projets Php
Industrialisez vos projets Php ALTER WAY
 
What's Next Replay - IC / Jenkins
What's Next Replay - IC / JenkinsWhat's Next Replay - IC / Jenkins
What's Next Replay - IC / Jenkins
ZenikaOuest
 
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie TrudelHa zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Agile Montréal
 
Azure DevOps Tests Plan
Azure DevOps Tests PlanAzure DevOps Tests Plan
Azure DevOps Tests Plan
Denis Voituron
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOps
Microsoft
 
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
TelecomValley
 
SharePoint 2010 & Team Foundation Server
SharePoint 2010 & Team Foundation ServerSharePoint 2010 & Team Foundation Server
SharePoint 2010 & Team Foundation ServerPhilippe Sentenac
 
Techdays2011
Techdays2011 Techdays2011
Techdays2011
ALTER WAY
 
Usine logicielle à Orange Labs
Usine logicielle à Orange LabsUsine logicielle à Orange Labs
Usine logicielle à Orange Labs
Emmanuel Hugonnet
 
Paris Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacyParis Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacy
François Petitit
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
Arnaud Héritier
 
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
PimpMySharePoint
 
Les tests fonctionnels avec Visual Studio 2010
Les tests fonctionnels avec Visual Studio 2010Les tests fonctionnels avec Visual Studio 2010
Les tests fonctionnels avec Visual Studio 2010
Microsoft
 
Keynote DevOps - Microsoft DevOps Day 2014 in Paris
Keynote DevOps - Microsoft DevOps Day 2014 in ParisKeynote DevOps - Microsoft DevOps Day 2014 in Paris
Keynote DevOps - Microsoft DevOps Day 2014 in ParisJason De Oliveira
 
Formation devops par la pratique
Formation devops par la pratiqueFormation devops par la pratique
Formation devops par la pratique
Khaled Ben Driss
 
devops.pdf
devops.pdfdevops.pdf
devops.pdf
qsdqsd4
 
Présentation sur Maven 2 et petit retour d'expérience
Présentation sur Maven 2 et petit retour d'expériencePrésentation sur Maven 2 et petit retour d'expérience
Présentation sur Maven 2 et petit retour d'expérienceKhanh Maudoux
 
Présentation Maven
Présentation MavenPrésentation Maven
Présentation MavenSOAT
 
Accéder au développement Dot.Net et Asp.Net
Accéder au développement Dot.Net et Asp.NetAccéder au développement Dot.Net et Asp.Net
Accéder au développement Dot.Net et Asp.Net
Frédéric Vandenbriele
 
Développement d'un grand projet piloté par les tests (BDD)
Développement d'un grand projet piloté par les tests (BDD)Développement d'un grand projet piloté par les tests (BDD)
Développement d'un grand projet piloté par les tests (BDD)
Laurent PY
 

Similaire à Omnilog 2016 - Apéro techno : Rex Identicar sur l'intégration continue (20)

Industrialisez vos projets Php
Industrialisez vos projets Php Industrialisez vos projets Php
Industrialisez vos projets Php
 
What's Next Replay - IC / Jenkins
What's Next Replay - IC / JenkinsWhat's Next Replay - IC / Jenkins
What's Next Replay - IC / Jenkins
 
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie TrudelHa zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
 
Azure DevOps Tests Plan
Azure DevOps Tests PlanAzure DevOps Tests Plan
Azure DevOps Tests Plan
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOps
 
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
Soirée du Test Logiciel - Intégration, livraison et déploiement continu - A. ...
 
SharePoint 2010 & Team Foundation Server
SharePoint 2010 & Team Foundation ServerSharePoint 2010 & Team Foundation Server
SharePoint 2010 & Team Foundation Server
 
Techdays2011
Techdays2011 Techdays2011
Techdays2011
 
Usine logicielle à Orange Labs
Usine logicielle à Orange LabsUsine logicielle à Orange Labs
Usine logicielle à Orange Labs
 
Paris Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacyParis Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacy
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
 
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
 
Les tests fonctionnels avec Visual Studio 2010
Les tests fonctionnels avec Visual Studio 2010Les tests fonctionnels avec Visual Studio 2010
Les tests fonctionnels avec Visual Studio 2010
 
Keynote DevOps - Microsoft DevOps Day 2014 in Paris
Keynote DevOps - Microsoft DevOps Day 2014 in ParisKeynote DevOps - Microsoft DevOps Day 2014 in Paris
Keynote DevOps - Microsoft DevOps Day 2014 in Paris
 
Formation devops par la pratique
Formation devops par la pratiqueFormation devops par la pratique
Formation devops par la pratique
 
devops.pdf
devops.pdfdevops.pdf
devops.pdf
 
Présentation sur Maven 2 et petit retour d'expérience
Présentation sur Maven 2 et petit retour d'expériencePrésentation sur Maven 2 et petit retour d'expérience
Présentation sur Maven 2 et petit retour d'expérience
 
Présentation Maven
Présentation MavenPrésentation Maven
Présentation Maven
 
Accéder au développement Dot.Net et Asp.Net
Accéder au développement Dot.Net et Asp.NetAccéder au développement Dot.Net et Asp.Net
Accéder au développement Dot.Net et Asp.Net
 
Développement d'un grand projet piloté par les tests (BDD)
Développement d'un grand projet piloté par les tests (BDD)Développement d'un grand projet piloté par les tests (BDD)
Développement d'un grand projet piloté par les tests (BDD)
 

Dernier

PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptxPRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
AlbertSmithTambwe
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Laurent Speyser
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
Université de Franche-Comté
 
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
Horgix
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
OCTO Technology
 
Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
UNITECBordeaux
 
Les écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptxLes écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptx
abderrahimbourimi
 

Dernier (7)

PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptxPRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
 
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
 
Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
 
Les écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptxLes écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptx
 

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

  • 1. Intégration continue Jeudi 27 octobre 2016 Apéro techno
  • 2. Continuous Integration Continuous Delivery Continuous Deployment C'est quoi pour vous ?
  • 4. 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 »
  • 6. Définition Agilité DevOps Qualité logicielle Software Craftsmanship Intégration continue
  • 7.
  • 8. Panorama 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 Gestion de configuration Gestion des dépendances
  • 9.
  • 10. 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 »
  • 11. 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
  • 12. Outils « L'intégration continue n'est pas en premier lieu une question d'outil mais d'attitude »
  • 13. 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éveloppements 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)
  • 15. Release X.Y.Z Service A Service B Site web Fixtures Deploy BuildCommit Deploy Dépot Intégration US/Workitems Pré-recette Tests fonctionnels automatiques Build Analyse qualité du code Test Recette Demande de déploiement Approbation Deploy
  • 16. Pourquoi ? • Besoin d’avoir des résultats de tests fonctionnels en temps réel => validation US • Besoin d’avoir un environnement dispo et à jour pour la pré- recette • Diminuer le temps perdu par l’équipe OPS à faire des copier/coller et mise en conformité pour les déploiement sur les environnements • Sécuriser le process, éviter les erreurs humaines • Améliorer la communication DEV-OPS • Focaliser le temps des devs et des ops sur des tâches utiles
  • 17. Etapes de mises en oeuvre Obtenir des droits d’admin complet sur un serveur (IC) Obtenir la confiance des OPS, expliquer la démarche Mettre en place un build auto au commit sur un serveur de build Déployer ces build auto sur le moteur de tests fonctionnels Exécuter une analyse automatique et régulière du code Etudier l’écosystème réseau / Droits / Domaines / AD / zones DMZ avec les OPS, étudier leur process de déploiement manuel Mettre en place un déploiement automatique sur l’environnement d’intégration Mettre en place un déploiement automatique à la demande sur l’environnement de recette Définir un workflow d’approbation consensuel Mettre en place un déploiement automatique à la demande sur l’environnement de production
  • 18. Difficultés rencontrées • Infrastructure réseau en mouvement • VSTS en constante et rapide évolution • Trouver un projet en pause, ou qui tolère une perte d’efficacité pendant la transition • Découvrir l’ancien rôle et définir le nouveau rôle du Release Manager • Rassurer les DBA
  • 19. Prochaines étapes • Ajout dans le process auto de la seule partie manquante : SQL  Permettre aux DBA de continuer d’assurer leur rôle de validateur des livraisons  Poc terminé, RedGate sur la rampe de lancement • Passage de TFS à GIT  une branche par US  Pull request forcés sur MASTER & DEV  « Commiteur d’acier » ou relecture de code croisée • IaC (Infrastructure as Code)  Créer à la volée les environnements à la demande : 1 par branche de code