Qu'est-ce que le JenkinsPourquoi utiliser un outil d'intégration continue (CI) ?
⚡ Résumé intelligent
Jenkins est le serveur d'automatisation open source qui compile et teste le code à chaque validation d'un développeur, transformant ainsi l'intégration continue d'une tâche nocturne en un processus qui s'exécute en continu tout au long de la journée de travail.

Qu'est-ce que le Jenkins?
Jenkins est un serveur d'intégration continue open source écrit en Java pour orchestrer une chaîne d'actions afin de réaliser le processus d'intégration continue de manière automatisée. Jenkins prend en charge l'intégralité du cycle de vie du développement logiciel, de la construction, des tests, de la documentation, du déploiement et des autres étapes du cycle de vie du développement logiciel.
Jenkins est une application largement utilisée dans le monde entier, avec des centaines de milliers d'installations et une croissance quotidienne. En utilisant JenkinsLes entreprises de logiciels peuvent ainsi accélérer leur processus de développement logiciel. Jenkins peut automatiser la compilation et les tests à un rythme rapide.
Il s'agit d'une application serveur qui nécessite un serveur web comme Apache Tomcat. La raison Jenkins Le logiciel est devenu si populaire grâce à sa capacité à surveiller les tâches répétitives qui surviennent au cours du développement d'un projet. Par exemple, si votre équipe développe…ping un projet, Jenkins Nous testerons en continu vos versions de projet et vous indiquerons les erreurs dès les premières étapes de votre développement.
À noter: déployer la GUERRE dans Apache Tomcat fonctionne toujours, mais les versions actuelles intègrent un conteneur de servlets. Jenkins Il fonctionne normalement de manière autonome. La gamme LTS 2.555.x nécessite Java 21.
Qu'est-ce que l'Intégration Continue ?
Intégration continue est un processus d'intégration répétée des modifications de code de plusieurs développeurs dans un seul projet. Le logiciel est testé immédiatement après une validation de code. À chaque validation de code, le code est construit et testé. Si le test est réussi, la build est testée pour le déploiement. Si le déploiement réussit, le code est mis en production.
Cette validation, cette construction, ce test et ce déploiement sont un processus continu d'où le nom d'intégration/déploiement continu.
Comment Jenkins marche ?
Jenkins est une application serveur qui nécessite un serveur web comme Apache Tomcat pour fonctionner sur différentes plateformes. Windows, Linux, macOS, Unix, etc. Pour utiliser Jenkins, vous devez créer des pipelines, qui sont une série d'étapes qui un Jenkins Le serveur prendra en charge. Jenkins Le pipeline d'intégration continue est un instrument puissant composé d'un ensemble d'outils conçus pour héberger, surveiller, compiler et tester du code, ou des modifications de code, comme :
- Serveur d'intégration continue (Jenkins, Bamboo, CruiseControl, TeamCity, et d'autres)
- Outil de gestion de versions (par exemple, CVS, SVN, GIT, Mercurial, Perforce, ClearCase et autres)
- Outil de construction (Make, ANT, Maven, Ivy, Gradle, et d'autres)
- cadre de tests d'automatisation (Selenium, Appium, TestComplete, UFT, et d'autres)
Dans les versions actuelles, ces étapes se trouvent dans un JenkinsLe fichier a été enregistré à côté du code. Jenkins Le contrôleur lit ce fichier et transmet chaque étape à un agent, c'est-à-dire la machine qui exécute réellement le travail.
Jenkins Histoire
- Kohsuke Kawaguchi, un Java Le développeur travaillant chez SUN Microsystems en avait assez de créer du code et de corriger les erreurs de manière répétitive. En 2004, création d'un serveur d'automatisation appelé Hudson qui automatise les tâches de construction et de test.
- En 2011, Oracle Les propriétaires de Sun Microsystems étaient en conflit avec la communauté open source Hudson ; ils ont donc créé une branche de Hudson et l'ont renommée en Jenkins.
- Hudson et Jenkins ont continué à fonctionner de manière indépendante. Mais en peu de temps, Jenkins a acquis de nombreux projets et contributeurs tandis que Hudson n'en gérait que 32. Avec le temps, Jenkins Hudson est devenu plus populaire, et il n'est plus entretenu.
Pourquoi utiliser l'intégration continue avec Jenkins?
Certaines personnes pourraient penser que la méthode traditionnelle de développementping Le logiciel est la meilleure solution. Voyons les avantages de l'intégration continue (CI) avec Jenkins avec l'exemple suivant
Imaginons qu'une dizaine de développeurs travaillent sur un dépôt partagé. Certains terminent leur tâche en 25 jours, tandis que d'autres mettent 30 jours.
| Avant Jenkins | Après Jenkins |
|---|---|
|
Une fois que tous les développeurs avaient terminé les tâches de codage qui leur étaient assignées, ils validaient leur code en même temps. Later, Build est testé et déployé. Code Le processus de compilation était effectif, le cycle de test était très peu fréquent et une seule compilation était effectuée après plusieurs jours. |
Le code est compilé et testé dès que le développeur valide du code. Jenkins compilera et testera le code plusieurs fois au cours de la journée. Si la compilation réussit, alors Jenkins Déploiera le code source sur le serveur de test et en informera l'équipe de déploiement. Si la compilation échoue, alors Jenkins signalera les erreurs à l'équipe de développement. |
| Étant donné que le code a été construit en une seule fois, certains développeurs devraient attendre que d'autres développeurs aient fini de coder pour vérifier leur version. | Le code est construit immédiatement après la validation de l'un des développeurs. |
| Ce n'est pas une tâche facile d'isoler, de détecter et de corriger les erreurs liées à plusieurs validations. | Comme le code est compilé après chaque commit d'un même développeur, il est facile de détecter quel code a provoqué l'échec de la compilation. |
| Code construire et processus de test sont entièrement manuels, il y a donc de nombreuses chances d'échec. | Processus de construction et de test automatisé permettant de gagner du temps et de réduire les défauts. |
| Le code est déployé une fois que toutes les erreurs sont corrigées et testées. | Le code est déployé après chaque build et test réussi. |
| Le cycle de développement est lent | Le cycle de développement est rapide. Les nouvelles fonctionnalités sont plus facilement accessibles aux utilisateurs. Augmente les bénéfices. |
Étude de cas concret d'intégration continue
Je suis sûr que vous connaissez tous l'ancien téléphone Nokia. Nokia avait l'habitude de mettre en œuvre une procédure appelée nightly build. Après plusieurs engagements de divers développeurs au cours de la journée, le logiciel a été construit chaque nuit. Étant donné que le logiciel n'est construit qu'une fois par jour, il est extrêmement pénible d'isoler, d'identifier et de corriger les erreurs dans une grande base de code.
LaterIls ont adopté une approche d'intégration continue, illustrée ci-dessous. Le logiciel est compilé et testé dès qu'un développeur soumet du code. En cas d'erreur, le développeur concerné peut la corriger rapidement.
Jenkins Plugins
Par défaut, Jenkins Il est livré avec un ensemble limité de fonctionnalités. Si vous souhaitez intégrer votre Jenkins Si vous installez un système de contrôle de version comme Git, vous devez installer les plugins associés. En effet, pour l'intégration avec des outils comme Maven, Amazon EC2, vous devez installer les plugins correspondants dans votre Jenkins, comme le montre le gestionnaire de plugins ci-dessous.
Avantages de l'utilisation Jenkins
- Jenkins est géré par la communauté, qui est très ouverte. Chaque mois, des réunions publiques sont organisées afin de recueillir les suggestions des citoyens pour le développement de Jenkins .
- Le projet maintient un rythme de publication prévisible : une nouvelle version de base à support à long terme est choisie toutes les douze semaines, puis reçoit des correctifs planifiés.
- À mesure que la technologie évolue, elle évolue elle aussi. JenkinsLa base de données de plugins contient désormais plus de deux mille plugins. Grâce aux plugins, Jenkins devient encore plus puissant et riche en fonctionnalités.
- Jenkins L'outil prend également en charge une architecture basée sur le cloud afin que vous puissiez déployer Jenkins sur des plateformes basées sur le cloud.
- La raison pour laquelle Jenkins Sa popularité tient au fait qu'il a été créé par un développeur pour des développeurs.
Inconvénients de l'utilisation Jenkins
Bien que Jenkins est un outil très puissant, mais il a ses défauts.
- Son interface est obsolète et peu conviviale par rapport aux tendances actuelles en matière d'interface utilisateur, même si les versions récentes ont modernisé une grande partie de la conception de l'écran.
- Bien que Jenkins Bien qu'il soit apprécié par de nombreux développeurs, sa maintenance n'est pas si simple car Jenkins Il s'exécute sur un serveur et nécessite certaines compétences d'administrateur serveur pour surveiller son activité.
- L'une des raisons pour lesquelles beaucoup de gens ne mettent pas en œuvre Jenkins est dû à sa difficulté d'installation et de configuration Jenkins.
- Les intégrations continues s'interrompent régulièrement en raison de quelques petits changements de paramètres. L'intégration continue sera suspendue et nécessitera donc une certaine attention des développeurs.
- Des conflits de dépendances entre plugins apparaissent lorsque de nombreux plugins sont mis à jour à des moments différents ; les mises à jour de plugins nécessitent donc leur propre fenêtre de maintenance.
Si ces compromis sont importants pour votre équipe, comparez les Meilleur Jenkins Outils alternatifs et la liste plus large de meilleurs outils d'intégration continue avant de s'engager sur un serveur auto-hébergé.


