L’intégration continue et les
outils pour les développeurs
Satisfaire vos clients
En combien de temps êtes vous capable de publier le
correctif d’un bug sur votre application web ?
Comment leur garantir un service ininterrompu, même
durant les mises à jours ?
Un pic de traffic sur votre site ? Comment allez vous pouvoir
grossir rapidement ? L’hébergement Cloud ne donne pas
toutes les réponses !
D’importants coûts de déboggage
Un code difficile à maintenir
« Cette fonction prend plusieurs centaines de lignes, je ne la
comprend pas »
« Toute une partie de notre code n’est jamais appelée »
« Pourtant ça fonctionne sur ma machine ! »
Comment développer des logiciels ou des
applications web
Mieux, Plus rapidement, à Moindre coût ?
Les solutions au problèmes
1. Former les développeurs
3. Garantir le bon déploiement en l’automatisant
2. Garantir la qualité du code
1. Former les développeurs
Livrer le code plus souvent
Demander de respecter des conventions lors du
développement
Utiliser des gestionnaires de paquets pour les dépendances
Tester le code réalisé
2. Garantir la qualité du code
Garantir le bon fonctionnement de l’application avant de la
publier sur un environnement similaire à la production (mises à
jours…)
- Compilation
- Création de la base de donnée
- Exécution des tests
- Inspection du code
3. Garantir le bon déploiement en l’automatisant
Préparer un nouveau serveur en quelques minutes
Mettre à jour l’application sans downtime
Etre capable d’effectuer un rollback en quelques secondes
Générer et mettre en ligne la documentation
Le développeur au centre de tout
GIT au centre de tout
Je push sur GIT
La qualité du code est analysée
Si l’analyse qualité est réussie, le code est mis en
production
Trois étapes simples
Problème : Tout le contenu que je push ne dois pas
immédiatement être publié.
Le GIT Flow
Par conséquent seule la branche master est publiée.
Pour autant, toutes les branches doivent être testées, et
inspectées.
Que faire en cas d’échec de la validation ?
Ne jamais mettre en production
Prévenir le développeur concerné par l’erreur
(celui qui a effectué le commit)
Intégration Continue
Un service d’intégration continue c’est quoi ?
Crée une machine virtuelle
La configure comme votre environnement de production
Exécute les tests / inspections que vous lui ordonner d’exécuter
Un service d’intégration continue c’est quoi ?
Deux types de configurations
Un fichier .yml dans mon repository git (Travis, CircleCI)
Configurer directement depuis le site internet (Codeship)
GIT Flow
git branch -> Lister toutes les branches
git branch something -> Créer une branche something
git checkout something -> Aller sur la branche something
Gestion des branches en GIT
git merge something -> Merge la branche something avec
ma branche courante
git branch -d something -> Supprime la branche
Déploiement Continue
Ansible
Puppet
Chef

Integration continue et déploiement automatisé

  • 1.
    L’intégration continue etles outils pour les développeurs
  • 2.
    Satisfaire vos clients Encombien de temps êtes vous capable de publier le correctif d’un bug sur votre application web ? Comment leur garantir un service ininterrompu, même durant les mises à jours ? Un pic de traffic sur votre site ? Comment allez vous pouvoir grossir rapidement ? L’hébergement Cloud ne donne pas toutes les réponses !
  • 3.
  • 4.
    Un code difficileà maintenir « Cette fonction prend plusieurs centaines de lignes, je ne la comprend pas » « Toute une partie de notre code n’est jamais appelée » « Pourtant ça fonctionne sur ma machine ! »
  • 5.
    Comment développer deslogiciels ou des applications web Mieux, Plus rapidement, à Moindre coût ?
  • 6.
    Les solutions auproblèmes 1. Former les développeurs 3. Garantir le bon déploiement en l’automatisant 2. Garantir la qualité du code
  • 7.
    1. Former lesdéveloppeurs Livrer le code plus souvent Demander de respecter des conventions lors du développement Utiliser des gestionnaires de paquets pour les dépendances Tester le code réalisé
  • 8.
    2. Garantir laqualité du code Garantir le bon fonctionnement de l’application avant de la publier sur un environnement similaire à la production (mises à jours…) - Compilation - Création de la base de donnée - Exécution des tests - Inspection du code
  • 9.
    3. Garantir lebon déploiement en l’automatisant Préparer un nouveau serveur en quelques minutes Mettre à jour l’application sans downtime Etre capable d’effectuer un rollback en quelques secondes Générer et mettre en ligne la documentation
  • 10.
    Le développeur aucentre de tout
  • 11.
  • 12.
    Je push surGIT La qualité du code est analysée Si l’analyse qualité est réussie, le code est mis en production Trois étapes simples
  • 13.
    Problème : Toutle contenu que je push ne dois pas immédiatement être publié.
  • 14.
  • 15.
    Par conséquent seulela branche master est publiée. Pour autant, toutes les branches doivent être testées, et inspectées.
  • 16.
    Que faire encas d’échec de la validation ? Ne jamais mettre en production Prévenir le développeur concerné par l’erreur (celui qui a effectué le commit)
  • 17.
  • 18.
    Un service d’intégrationcontinue c’est quoi ? Crée une machine virtuelle La configure comme votre environnement de production Exécute les tests / inspections que vous lui ordonner d’exécuter
  • 19.
    Un service d’intégrationcontinue c’est quoi ?
  • 20.
    Deux types deconfigurations Un fichier .yml dans mon repository git (Travis, CircleCI) Configurer directement depuis le site internet (Codeship)
  • 21.
  • 22.
    git branch ->Lister toutes les branches git branch something -> Créer une branche something git checkout something -> Aller sur la branche something Gestion des branches en GIT git merge something -> Merge la branche something avec ma branche courante git branch -d something -> Supprime la branche
  • 23.
  • 24.