CI/CD : tout savoir sur l'intégration et la livraison continues
Centraux pour le DevOps, les processus de CI/CD, ou intégration et livraison continues, ont pour finalité d'industrialiser le test et le déploiement d'applications.
Le CI/CD, qu'est-ce que c'est ?
En informatique, le CI/CD, pour continuous integration / continuous delivery, désigne le process informatique d'intégration et de livraison continues des applications. Entendez par là la mise en œuvre, au fil de l'eau, des tests et du déploiement d'applications et des évolutions applicatives.
En industrialisant les mises en production informatique, le CI/CD est l'un des principaux concepts de la démarche DevOps qui consiste optimiser la relation entre les équipes de développement et d'exploitation IT.
Pourquoi utiliser le CI/CD ?
En industrialisant l'intégration et la livraison applicative, le CI/CD accélère la vitesse de déploiement d’un code, de même que la vitesse de résolution des bugs. Ce qui contribue à une mise en production et à une commercialisation plus rapides des applications, ainsi qu'une meilleure qualité de ces dernières.
Grâce au CI/CD, les applications vont bénéficier d’une amélioration continue et d’un environnement stable au niveau de la production, vu que le code est toujours testé avant son déploiement. En structurant les process IT, le CI/CD permet aussi d’intégrer plus facilement de nouveaux développeurs à un projet existant.
Un pipeline CI/CD, c'est quoi ?
Le pipeline CI/CD désigne l’ensemble des pratiques et étapes mises en place pour réaliser l'intégration et la livraison continues d’un code ou d’une application. Plus précisément, il consiste à en automatiser chaque phase, depuis les tests jusqu’au déploiement. Ce pipeline suppose une collaboration étroite entre les équipes de développement et d'exploitation.
Quels sont les outils de CI/CD ?
Parmi les outils de CI/CD les plus populaires, on peut citer : GitHub Actions, GitLab, Jenkins, CircleCI ou encore Travis CI, entre autres. Ces solutions sont accessibles en ligne sous la forme de services cloud, ou téléchargeables pour bénéficier d’un usage sur site. De nombreux langages de programmation sont pris en charge.
Quels sont les principaux outils de CI/CD pour Kubernetes ?
GitLab propose des intégrations natives dans Kubernetes, et peut lancer automatiquement une application dans un cluster Kubernetes. Jenkins peut également être utilisé de façon optimale sur Kubernetes, tout comme Screwdriver ou Travis CI.
Comment implémenter un pipeline CI/CD sur AWS ?
Le cloud d’Amazon AWS permet de configurer rapidement un pipeline CI/CD pour automatiser la production de code, grâce à l’outil CodePipeline. AWS met par ailleurs à disposition de ses clients des extensions pré-intégrées pour recourir à des services tiers de CI/CD tels que GitHub, TeamCenter ou Jenkins.
Comment implémenter un pipeline CI/CD sur Azure ?
Le cloud d’Azure propose un service nommé Azure Pipelines pour mettre en place des pipelines dans le code source d’une application. Compatibles avec GitHub, les pipelines hébergés en mode cloud fonctionnent sur Linux, Mac et Windows.
CI/CD vs DevOps
Si les deux démarches sont parfois confondues, la pratique DevOps va davantage se concentrer sur les problèmatiques de culture interne de l’entreprise, et sur l’amélioration des processus de développement agile.
Alors que le CI/CD se concentre purement sur le process de déploiement applicatif, une organisation du travail en mode DevOps va chercher à éliminer les barrières entre les équipes opérationnelles et de développeurs, pour que les talents puissent mieux collaborer et bénéficier de leurs compétences mutuelles en vue, au final, d'améliorer la qualité des livrables.