Qu'est-ce que le JenkinsPourquoi utiliser un outil d'intégration continue (CI) ?
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, comptant environ 300 000 installations et ce nombre augmentant chaque jour. 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.
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 outil puissant composé d'un ensemble d'outils conçus pour hôte, moniteur, compiler et tester code ou modifications de code, comme :
- Serveur d'intégration continue (Jenkins, Bamboo, CruiseControl, TeamCity, et d'autres)
- Outil de contrôle de source (par exemple, CVS, SVN, GIT, Mercurial, Perforce, ClearCase et autres)
- Outil de construction (Faire, ANT, Maven, Ivy, Gradle, et d'autres)
- Cadre de test d'automatisation (Selenium, Appium, TestComplete, UFT, et d'autres)
Histoire de Jenkin
- 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'il y ait une dizaine de développeurs qui travaillent sur un référentiel partagé. Certains développeurs 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 construit et testé dès que le développeur valide le code. Jenkin construira 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. | Étant donné que le code est construit après chaque validation d'un seul développeur, il est facile de détecter quel code a provoqué l'échec de la construction. |
| 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.
Later, ils ont adopté une approche d’intégration continue. Le logiciel a été construit et testé dès qu'un développeur a validé le code. Si une erreur est détectée, le développeur concerné peut rapidement corriger le défaut.
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.

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 .
- Jusqu'à présent, environ 280 tickets ont été clôturés et le projet publie une version stable tous les trois mois.
- À mesure que la technologie évolue, elle évolue elle aussi. Jenkins. Jusqu'à présent Jenkins possède environ 320 plugins publiés dans sa base de données de plugins. Avec les 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.
- 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.
Conclusion
- En intégration continue, après une validation de code, le logiciel est construit et testé immédiatement
- Jenkins utilisé pour orchestrer une chaîne d'actions pour l'intégration continue dans un projet logiciel
- Avant Jenkins Lorsque tous les développeurs avaient terminé leurs tâches de codage assignées, ils validaient leur code simultanément. Later, Build est testé et déployé.
- Après Jenkins Le code est compilé et testé dès que le développeur effectue un commit. Jenkins compile et teste le code plusieurs fois par jour.
- 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 outil de contrôle de version comme Git, vous devrez installer les plugins associés. Consultez également Meilleur Jenkins Outils alternatifs
- Les plus grands avantages de Jenkins c'est qu'elle est gérée par la communauté, qui organise des réunions publiques et recueille les avis du public pour son développement. Jenkins projets
- Le plus gros inconvénient de Jenkins Son interface est obsolète et peu conviviale comparée aux tendances actuelles. Si vous envisagez d'autres options offrant une expérience utilisateur plus moderne, vous pourriez explorer certaines des solutions suivantes : meilleurs outils d'intégration continue disponible.

