Data : que signifie CI/CD ?

En projet data, l’intégration continue (CI) est une méthode visant à intégrer des changements au code d’origine de façon continue, tout en détectant et corrigeant les éventuelles erreurs apportées. Cette technique très prisée a énormément d’avantages et permet de développer une application, ou un logiciel, tout en développant des mises à jour de système, en réduisant les risques d’erreurs, en améliorant la vitesse d’intégration, en proposant une meilleure qualité aux codes et en favorisant ainsi le passage à des étapes supérieurs, comme la livraison continue (CD), ou le déploiement continu.

metro-tunnel-dual-1300px

Qu’est-ce que l’intégration continue ou CI ?

L’intégration continue est une pratique très utilisée lors de mise à jour ou de création de logiciels, qui vise à intégrer des changements de code apportés au projet d’origine de manière continue. Chaque intégration sera vérifiée et testée par un build automatisé. Celui-ci détectera les erreurs d’intégration, qui pourront donc être réparées individuellement.

Ce principe permet à une équipe de développer son projet plus rapidement, car intégrer des changements petit à petit et fréquemment permet de détecter des erreurs de manière beaucoup plus rapide. L’équipe qui développe peut donc se focaliser réellement sur la partie la plus importante du projet, à savoir sa qualité. 

L’intégration continue ne se fait pas au hasard, celle-ci doit respecter un ordre assez précis pour garder ses avantages. La mise en place de la CI se fait en 5 étapes distinctes.

Les étapes de l’intégration continue

Lors d’une intégration continue, il existe plusieurs étapes à respecter pour obtenir un développement de logiciels, d’applications ou de mises à jour, optimal en termes de qualité et de rapidité.

L’intégration continue doit en effet respecter un certain schéma afin, non seulement d’être performante, mais aussi pour éviter tout type de problème. Suivre ces étapes permet d’augmenter rapidement sa productivité, tout comme sa qualité de travail.

Voici une liste détaillée des 5 étapes à respecter lors d’une intégration continue :

  • La planification du développement : il est nécessaire d’avoir une idée précise des développements à apporter et savoir collaborer avec toute son équipe pour assurer une bonne planification du projet. Pour se faire, la méthodologie Scrum est idéale. Celle-ci vous permet de découper le projet en petites tâches à réaliser ;
  • La compilation et l’intégration du code : cette étape vise à compiler puis à intégrer les codes développés au code source. Pour se faire, il est impératif de contrôler le code source et d’utiliser un orchestrateur qui saura reproduire chaque étape du code et gérer les dépendances entre-elles ;
  • Le test du code : l’orchestrateur lancera les tests unitaires. Si vous utilisez un framework, cela peut permettre de garantir une certaine qualité au code. Cette étape permet, entre autres, de trouver les erreurs rapidement, de sécuriser la maintenance et de documenter le code ;
  • La mesure de la qualité du code: il est important, par la suite, de bien vérifier la qualité du code afin qu’il effectue bien les fonctionnalités demandées et ne contienne aucun bug, ou très peu. Pour renforcer la qualité du code et ne pas déployer un code de mauvaise qualité, il est possible d’ajouter un arrêt complet du pipeline d’intégration continue, si la qualité du code n’est pas suffisante ;
  • La poursuite vers les livrables: le code, une fois vérifié, doit être déployé dans un dépôt de livrables puis être versionné, dans le but de le déployer et de lancer les tests complémentaires, tels que le test de performance.

Lorsque chaque étape est bien respectée, l’intégration continue vous confère de nombreux avantages indiscutables, qui contribuent à améliorer la rapidité de développement d’un logiciel, d’une application ou d’une mise à jour de logiciel.

Quels sont les avantages de l’intégration continue ?

L’intégration continue est un outil de plus en plus utilisé lors de la création de logiciels et d’applications ou de mise à jour de systèmes, et ce, pour diverses raisons, notamment par ses avantages.

train-city-1300px

Réduire les risques d’erreurs liés à l’intégration

Les erreurs étant réparées immédiatement, les risques d’erreurs liés à l’intégration en fin de projet sont réduits drastiquement.

Améliorer la qualité du code

Les développeurs n’étant plus obnubilés par de possibles problèmes de codage, ils peuvent se concentrer sur l’aspect qualitatif du code.

Repérer les erreurs d’intégrations immédiatement

L’intégration se faisant au fur et à mesure, les erreurs de codage stop immédiatement le logiciel, permettant ainsi à l’équipe de savoir exactement où se trouve l’erreur.

Accroitre la productivité

Les développeurs n’ont plus peur de « casser » le code, ainsi, ils sont plus confiants et donc plus enthousiastes et productifs. De la même manière, l’intégration continue permet de réduire le stress et les tensions entre les collaborateurs, car une erreur est rapidement repérée et réparée.

Quels logiciels utiliser pour gérer l’intégration continue ?

Il existe de nombreux outils permettant de gérer l’intégration continue, certains gratuits d’autres plus onéreux, voici un rapide aperçu de ces outils d’intégration continue de très bonne qualité :

·       Jenkins : ce logiciel de CI est gratuit, développé en Java et propose régulièrement de nouvelles améliorations du service. Le logiciel est assez facile à installer et propose plus de 1000 plugins différents, permettant d’intégrer le logiciel à la grande majorité d’outils de développement, de test et de déploiement ;

·       Travis CI : ce logiciel de CI est payant, publié sous la licence MIT, et propose diverses possibilités, telles que compiler, tester, déployer et lancer des tests dans des environnements Docker. Sa configuration est faite en YAML ;

·       TeamCity : il ne s’agit pas d’un logiciel mais d’un serveur d’intégration continue basé sur la plateforme Java. TeamCity est gratuit, très facile à utiliser et à configurer.

La CI, premier pas avant la livraison continue (CD)

La livraison continue ou CD (« continous delivery », en anglais) est une étape directement liée à l’intégration continue, qui vise à préparer le déploiement continu. Cela représente la manière dont les changements apportés au logiciel sont livrés aux utilisateurs. Les changements peuvent être envoyés de façon quotidienne, hebdomadaire ou même mensuelle. Cette livraison est une pratique entièrement automatisée, qui permet un gain de temps considérable du coté des développeurs, et une meilleure expérience pour les utilisateurs.

Le déploiement continu : l’idéal

Le déploiement continu est une version encore plus poussée de la livraison continue. Dans cette version, chaque modification du code d’origine, appelé également le code source, est déployée de manière automatique.

Tout se fait de manière informatique, tout en informant l’équipe de développement de chaque résultat ou événement important. Encore une fois, le gain de temps apporté par cette méthode est considérable.

Il est de ce fait possible d’automatiser chaque action de déploiement et ainsi supprimer de nombreuses tâches fastidieuses pour les équipes d’exploitation, tout en améliorant drastiquement la rapidité du processus de déploiement, la qualité et la fiabilité du déploiement développé.

Vous savez maintenant ce qu’est une intégration continue, les différentes étapes à réaliser pour faire une CI, les grands avantages de celle-ci et vous savez également en quoi consiste le déploiement continu ou CD. Si vous souhaitez tirer parti de vos données pleinement, Ryax peut également vous accompagner et vous guider tout au long de votre projet ! N’hésitez pas à nous contacter pour plus d’informations.

La Ryax Team.