L’intégration continue : qu’est-ce que c’est ?

integration continue c'est quoi

Si vous faites des projets informatiques ou que vous êtes simplement passionné, vous avez probablement déjà rencontré la notion « d’intégration continue » ou de « continuous integration ». Process souvent utilisé lors du développement de nos projets, on vous propose un tour d’horizon du sujet avec un de nos experts Gitlab.

L’intégration continue, c’est quoi ?

L’intégration continue (ou continuous integration) a pour but de mettre en place un processus de publication automatisé et simplifié, qui permet une livraison plus rapide d’un logiciel aux utilisateurs finaux.

En d’autres termes, l’intégration continue permet d’automatiser un certain nombre de taches récurrentes (compilation, tests unitaires, tests d’intégration) et si on va un peu plus loin, de faire du déploiement sur les environnements de tests et de production.

L’intégration continue, c’est finalement la zone neutre entre « le développement » et la mise en production. Toutes ces taches que nous avons l’habitude de faire de manière récurrente, c’est les outils d’intégration continue qui le traitent pour nous.

L’intégration continue, le pipeline

Dans la pratique, l’intégration continue c’est ni plus ni moins qu’un pipeline, composé de différentes étapes. Voilà un pipeline classique (qu’on retrouve dans beaucoup de nos projets) :

  • 1 – Phase de build : compilation de l’application pour un environnement.
  • 2 – Phase de tests : tests effectués de manière unitaire. Généralement, un test se résume à une ligne de commande. On laisse ensuite faire la librairie qui exécute tous les tests.
  • 3 – 1ère livraison sur un environnement de test
  • 4 – Réalisation d’une batterie de tests qui viennent valider la livraison par rapport à votre cahier d’exigences.
  • 5 – Phase de livraison finale : livraison du projet sur un environnement de production.

Les principaux avantages à utiliser un outil d’intégration continue :

Utiliser un outil d’intégration continue, c’est aujourd’hui un confort indispensable :

  • Gain de temps : tandis qu’avant on pouvait mettre plusieurs mois à pusher un projet en production (car il y avait des environnements hypra sécurisés et qu’il fallait décrire les procédures de 40 pages sur papier), on réduit cela à quelques poignées de minutes et à quelques clics. (quand c’est bien fait, la livraison prend seulement le temps de créer un tag)
  • Fiabilité : éviter les actions manuelles entre les différents environnements pour limiter les erreurs. Ce serait dommage de mettre la production KO à cause d’un oubli !
  • Simplicité : Le code est mis dans un pipeline, et avec de simples clics, on peut simplement passer d’un environnement à l’autre.
  • Prise en main du projet facilitée : Une fois que le process est bien mis en place, tout le monde peut facilement exécuter les livraisons ! C’est utile notamment lorsqu’un nouveau développeur arrive sur un projet et ne connaît pas parfaitement la stack applicative.

Les principaux outils d’intégration continue

Gitlab, Jenkins, Ansible, Azure Devops… il existe plusieurs solutions d’intégration continue qui sont relativement similaires, même si de notre côté, on a une grosse préférence pour Gitlab ! Pour découvrir dans le détails ces solutions, c’est par ici : les outils d’intégration continue.

Comprendre l’arrivée de l’intégration continue, un peu d’histoire…

Avant l’intégration continue, c’était comment ?

Il y a toujours un avant ! Avant l’intégration continue, c’était comment ? Dans un premier temps, l’application était testée et compilée sur notre poste. Ensuite, on copiait/collait la partie binaire de l’application (fichier war, jar,etc.) sur le serveur de production. A ce moment là, on croisait les doigts pour que ça marche… Pas idéale comme solution !

Pourquoi est apparue l’intégration continue ?

L’intégration continue a été créée pour palier aux problèmes des process précédents. Avant, les environnements n’étaient pas symétriques, il y avait de grandes différences entre ce qu’on avait sur le poste de développement et ce qu’on avait sur l’environnement de production.

La professionnalisation du monde IT a aussi porté cette évolution ! Aujourd’hui, c’est fini l’économie des environnements… Lorsqu’on développe un projet, on passe par plein d’environnements différents qui permettent de valider le code, le tester, vérifier si cela marchera bien avec les environnements de production, etc. La multiplication des environnements a largement complexifié la compilation des projets.

L’objectif étant d’automatiser le processus de manière industrielle afin d’augmenter la qualité des livrables.

Combien y’a-t-‘il d’environnements sur les projets d’application actuellement ?

Il y a toujours au minimum 3 environnements dans les projets de développement : l’environnement de développement, l’environnement de test, l’environnement de production.

Sur les projets clients conséquents, il y a même plusieurs environnements de développement, plusieurs environnements de tests, des environnements de pré-production, puis un environnement de production. On peut facilement se retrouver avec 8 environnements à gérer.

Pour conclure

L’intégration continue, c’est devenu un incontournable du monde du développement. Globalement, une solution d’intégration continue peut être mise en place sur tous les projets alors on vous conseille de le faire pour tous vos nouveaux projets !

Vous voulez en savoir plus sur la mise en place de l’intégration continue et avoir nos retours d’expériences ? C’est par ici !

Camille Regnault