Concept et avantages CI/CD

CICD Concept

Vous avez très certainement déjà entendu parler de CI/CD. L’intégration continue ou déploiement continue. Il s’agit d’un ensemble de méthodes et pratiques qui permettent aux développeurs de contribuer un code valide rapidement, en toute sécurité et de le déployer. Ainsi, les utilisateurs peuvent l’utiliser et l’exploiter. L’utilisation de la CI/CD est devenue primordiale au niveau développement des applications qui suivent les méthodologies Agiles comme chez DHM IT. Suivre ce genre de méthodologie nécessite l’utilisation des tests automatisés afin de permettre la livraison des applications aux utilisateurs finaux le plus rapidement possible.

Vous avez très certainement déjà entendu parler de CI/CD. L’intégration continue ou déploiement continue. Il s’agit d’un ensemble de méthodes et pratiques qui permettent aux développeurs de contribuer un code valide rapidement, en toute sécurité et de le déployer. Ainsi, les utilisateurs peuvent l’utiliser et l’exploiter. L’utilisation de la CI/CD est devenue primordiale au niveau développement des applications qui suivent les méthodologies Agiles comme chez DHM IT. Suivre ce genre de méthodologie nécessite l’utilisation des tests automatisés afin de permettre la livraison des applications aux utilisateurs finaux le plus rapidement possible.
 

CI : L’intégration continue

C'est la validation du code et des modifications dans un seul endroit et exécuter un processus de qualité automatique à chaque changement au niveau code. Ce processus peut inclure par exemple, l’exécution des analyses automatiques de qualité du code ou générer un rapport détaillé montrant à quel niveau ces dernières modifications respectent les bonnes pratiques de codage. L’exécution des tests automatisés permet d’éliminer toute erreur au niveau du code qui pourrait interrompre d’autres fonctionnalités.

 

CD: Déploiement continu

 La livraison continue ou déploiement continu est l’étape qui suit l’intégration continue (CI). Après avoir passé tout le processus des tests, le code est finalement déployé d’une façon automatique mais déclenché manuellement. Avec cette méthode, on assure une rapidité de publication des nouvelles modifications à apporter aux clients finaux et de gagner un processus automatisé permettant le déploiement de l’application à tout moment avec un seul clic.

 

Avantages CD:

  • Possibilité de publier les nouvelles modifications d'une façon plus régulière et rapide, accélérant ainsi la boucle de rétroaction avec les clients.
  • Elimination de la complexité de déploiement
  • Développement plus rapide sans interrompre la génération des versions grâce à l'automatisation des pipelines de déploiement avec chaque modification.
  • Une itération plus rapide après la minimisation de pression sur la prise de décision sur les petits changements.
  • Garantir une mise à jour continue et mettre en valeur la qualité qui s'améliore chaque jour plutôt que chaque mois ou plus.
  •  Débogage plus facile et moins risqué en déployant des petits lots de modifications.

Ces avantages ne viennent pas sans coût, l'installation et la maintenance d'un serveur CI ainsi que les outils dédiés à l'automatisation des tests et le déploiement peuvent être un peu plus important qu'avant. Aussi, la rapidité dans ce processus de publication oblige les autres services (support, marketing, etc...) à être plus réactifs, même pour la phase documentation qui doit suivre impérativement ce rythme.

Exemples d’outils CI/CD:

Il existe plusieurs outils très connus tel que CircleCI* qui consiste à créer un pipeline GitHub ou Bitbucket CI/CD dont chaque modification de code apporté au référentiel de code exécute les tests dans un conteneur isolé ou une VM. Il est utilisé dans plusieurs projets open sources comme ReactJS, React Native, Flow, Relay,Vue, Electron, Angular ...

D'autres outils comme comme TravisCI*, GoCD, Combinaisons ou encore SonarQube que nous utilisons chez DHM IT peuvent être intégrés dans vos projets

Pour conclure sur les outils du CI/CD, n'oubliez pas que leur utilisation (ou mise en place) est un vrai gain de temps.

Ils vous permettent de développer plus rapidement avec un processus automatisé, de communiquer de manière transparente les informations sur le projet à vos équipes, d'être plus performant, souple et efficace.

 

  • Test
  • Deploiement
  • intégration continue
  • livraison continue
  • déploiement continu
  • Devops
  • Agile
  • Automated Tests
  • Pipelines
  • CircleCI
  • GoCD
  • TravisCI
  • Jenkins
  • CI/CD
  • Bitbucket CI/CD
  • GitLab CI/CD
  • Github