Publié le 10 octobre 2017
  • Intermédiaire
  • Développement
  • Intégration
  • Performance

Intégration, livraison, déploiement le tout en continu

Intéressant cet article ?

[Total : 1    Moyenne : 5/5]

Avant de vous expliquer comment nous appliquons ces méthodes chez JETPULP, il nous paraît judicieux de faire un petit rappel sur ces 3 pratiques que sont l’intégration continue, la livraison continue et le déploiement continu.

L’intégration continue

L’intégration continue (Continuous Integration aka CI) est une pratique d’ingénierie logicielle dans laquelle des modifications isolées du code sont immédiatement testées et signalées lorsqu’elles sont ajoutées à la base de code.

Les logiciels d’intégration continue sont utilisés pour automatiser le test et construire une trace documentaire.

Pour que la CI soit efficace et apporte toute sa plus-value, les défauts doivent être détectés et résolus rapidement, autrement dit « les voyants doivent toujours être au vert. »

La livraison continue

La livraison continue (Continuous Delivery aka CD) est une pratique consistant à automatiser l’ensemble du processus de publication du logiciel. L’idée est de faire la CI, puis de préparer et de suivre automatiquement la publication vers la production.

Le résultat souhaité est que toute personne ayant des privilèges suffisants pour déployer une nouvelle version peut le faire à tout moment en un ou quelques clics. En éliminant presque toutes les tâches manuelles, les développeurs deviennent plus productifs.

Le déploiement continu

Le déploiement continu (Continuous Deployment) est une version encore plus poussée de la livraison continue dans laquelle chaque modification du code source est déployée automatiquement, sans autre approbation que celle du développeur qui a fait la revue de code (pour (re)lire l’article c’est par ici). Un logiciel de  CI / CD prend en charge l’exécution de tous les tests et le déploiement du code en production, tout en informant l’équipe sur les résultats de chaque événement important.

Et chez JETPULP ?

Nous utilisons le logiciel de CI intégré à Gitlab qui nous donne entière satisfaction :

  • son interface utilisateur est élégante et compréhensible
  • les comptes rendus d’exécution sont directement accessibles depuis GitlabCI (cf. image 2)
  • il est facile à mettre en oeuvre car toute la configuration se situe dans le fichier .gitlab-ci.yml  du projet
  • son architecture basée sur des runners, la parallélisation des jobs et l’utilisation de docker permet d’être rapide, de scaler et de l’exécuter sur différents environnements
  • il est orienté vers le Continuous Delivery avec ses notions d’environnement et de stages multiples
  • la version Community Edition est Open Source

Selon les projets, nous mettons en place un premier stage d’analyse statique de code (aka lint ou code sniffer). Cette analyse nous permet de vérifier automatiquement certaines règle de codage (code style), voir d’identifier des erreurs d’exécution possibles. Nous utilisons également des outils comme PHPCS ou PHPSTAN  pour le PHP ou bien Eslint pour le javascript et scss-lint pour le sass.

S’en suit un stage de tests, avec des tests PHPUnit ou bien des tests javascripts. Les jobs GitlabCI s’exécutant dans des containers docker, cela laisse une entière souplesse pour les projets qui comprennent plusieurs technos (php, javascript, etc.. ).

GitlabCI nous permet même de faire du déploiement continu en exécutant Capistrano à la fin du Pipeline de CI.

Sylvain P.

La-qualité-une-responsabilité-collective
0 Commentaires
Répondre
Se joindre à la discussion ?
Vous êtes libre de contribuer !
Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *