Discutons de ces deux outils d’intégration continue populaires et de leurs différences.
La méthode du cycle de vie du développement logiciel a radicalement changé au cours de la dernière décennie.
Auparavant, le modèle en cascade était la voie à suivre, puis la méthodologie agile est venue où le développement se faisait de manière itérative, et maintenant avec DevOps, le développement et les opérations se produisent de manière itérative et continue jusqu’à ce que l’application complète soit développée et déployée.
Le terme CI/CD, qui signifie intégration continue et livraison continue, est devenu très populaire. Il s’agit d’une pratique DevOps qui permet de développer et de livrer l’application beaucoup plus rapidement et de manière fiable. Il s’agit d’une méthodologie qui automatise toutes les étapes depuis l’exigence métier jusqu’au déploiement en production à l’aide d’un outil CICD. C’est bien mieux et plus sûr que de tout faire manuellement.
Il existe maintenant de nombreux outils disponibles pour CI/CD, il peut donc être déroutant de choisir les bons outils.
Table des matières
Pourquoi Jenkins ?
Jenkins est l’outil d’intégration continue open source le plus populaire. C’est la norme de facto pour la solution d’intégration continue.
Vous pouvez installer Jenkins sur les principaux systèmes d’exploitation comme Windows ou Linux, car il fonctionne sur Java. Il a été créé à l’origine comme un outil d’automatisation de construction pour les applications Java. Depuis, il a beaucoup évolué et compte plus de 1400 plugins pour s’intégrer facilement à d’autres plateformes et outils.
Jenkins est l’outil de base pour l’intégration continue et la livraison continue dans le processus de développement logiciel. Il est simple à installer et fournit un tableau de bord pour la gestion de projet, facilement accessible via un navigateur.
Les développeurs utilisent Jenkins pour créer, intégrer, tester et déployer leur code automatiquement. Tout d’abord, les développeurs vérifient leur code, puis Jenkins récupère le code source modifié, déclenche une génération et exécute un test si nécessaire. Une fois la construction terminée, vous obtiendrez la sortie dans le tableau de bord Jenkins, et une notification peut être envoyée au développeur si elle est définie.
Pourquoi Team City ?
TeamCity est un serveur CI/CD commercial également basé sur Java. Il s’agit d’un outil d’automatisation et de gestion de build créé par JetBrains.
Le slogan de TeamCity est « Powerful Continuous Integration out of the box », et cet outil le justifie. Il offre presque toutes les fonctionnalités de Jenkins avec quelques fonctionnalités supplémentaires. TeamCity peut s’intégrer à Docker pour créer automatiquement des conteneurs via docker-compose. Il prend en charge l’intégration de l’outil Jira pour suivre facilement les problèmes.
TeamCity prend en charge le framework .NET et vous pouvez facilement intégrer TeamCity à plusieurs IDE comme Eclipse, Visual Studio, etc. Grâce à l’intégration pour créer un référentiel d’artefacts, TeamCity peut stocker les artefacts sur le système de fichiers du serveur TeamCity ou sur un stockage externe.
Avec la version gratuite TeamCity de la licence de serveur professionnel, vous pouvez créer 100 builds et 3 agents de build sans frais.
Jenkins contre TeamCity
Open Source vs commercial
La différence la plus fondamentale est que Jenkins est un outil d’intégration continue open source et TeamCity est un outil commercial. Le projet Jenkins est publié sous licence MIT et pris en charge par des développeurs du monde entier. TeamCity est développé et maintenu par sa société mère JetBrains.
Interface
L’interface de TeamCity est agréable et l’interface aide à attirer de nombreux débutants qui commencent par l’intégration continue et recherchent un outil CI. Dans l’interface TeamCity, vous pouvez étiqueter, commenter et épingler la construction pour mieux les organiser.
L’interface de Jenkins est de la vieille école. Il n’est pas très attrayant à regarder et a une énorme portée d’amélioration du point de vue de l’interface utilisateur.
Fonctionnalités exclusives
Bien que Jenkins n’ait pas beaucoup de fonctionnalités intégrées, son énorme écosystème de plugins fournit des tonnes de fonctionnalités que les autres outils CI ne peuvent pas offrir. Avec de telles fonctionnalités de plug-in, Jenkins est habitué à créer des versions et à analyser le code, ce qui contribue à améliorer la qualité du code.
D’autre part, en dehors de certaines fonctionnalités habituelles de l’outil CI, TeamCity est livré avec plusieurs fonctionnalités prêtes à l’emploi. Il prend en charge plusieurs plates-formes telles que Java, Ruby, .NET, etc. Vous pouvez également créer des images Docker via TeamCity. Avec la prise en charge de Bugzilla et Jira, vous pouvez facilement effectuer le suivi des problèmes. De plus, les changements de build et l’historique des échecs sont stockés pour conserver les informations passées sur les statistiques, exécuter les builds antérieurs et tester les rapports d’historique.
Installation
Pour installer Jenkins sur votre système, vous devez avoir Java présent dessus. La configuration de Jenkins est simple lorsque les deux sont déjà présents sur le système. Une fois l’installation terminée, vous pouvez commencer à travailler sur Jenkins sur son interface Web.
L’installation de TeamCity est également très simple. Vous devez télécharger le serveur TeamCity et accéder à la documentation et suivre les instructions mentionnées.
Intégrations
Je ne pense pas qu’aucun outil CI soit proche de la concurrence de Jenkins lorsque nous parlons de capacités d’intégration. La popularité de Jenkins est là sur le marché car il offre une intégration avec des centaines de plugins gratuits.
Comparé à Jenkins, TeamCity peut s’intégrer avec beaucoup moins de plugins. Mais il offre peu d’intégrations exclusives, ce qui s’ajoute à ses « fonctionnalités prêtes à l’emploi ». Il prend en charge le framework .NET et s’intègre à Visual Studio Team Services, offrant une intégration cloud avec des fournisseurs de cloud tels qu’AWS, Azure, GCP, VMware.
Sécurité
La bonne partie de TeamCity étant commerciale, c’est que JetBrains le prend en charge afin qu’il soit fixé en priorité pour toute découverte de sécurité. TeamCity fournit une intégration avec le Plugin de sécurité Snyk, qui peut effectuer une analyse des vulnérabilités dans le pipeline de build. Il vous aide à identifier et à remédier à tous les risques et menaces présents dans vos builds.
Étant donné que Jenkins est open-source, l’atténuation des risques peut être retardée car tout dépend de la communauté des développeurs.
Communauté
La communauté de Jenkins est plus vaste que TeamCity. Comme Jenkins est open source, tout développeur peut contribuer à ce projet. Chaque jour, de nouveaux développeurs continuent d’ajouter leur contribution à ce projet pour ajouter de nouvelles fonctionnalités et en faire un meilleur outil.
D’autre part, TeamCity est un outil commercial et maintenu par l’équipe JetBrains. Il dispose d’une communauté de soutien professionnel pour développer cet outil.
Tarification
Jenkins est libre d’utilisation, car il est open source, et c’est pourquoi c’est un choix préférable pour de nombreuses organisations. Les organisations économisent beaucoup en ne dépensant rien pour un outil CI comme Jenkins.
TeamCity n’est pas libre d’utilisation. Il est livré avec deux licences, qui sont une licence de serveur professionnel et une licence de serveur d’entreprise. Dans une licence de serveur professionnel, vous pouvez utiliser gratuitement 100 configurations de build et 3 agents de build, puis 299 $ pour 1 agent de build supplémentaire et 10 configurations de build. La licence de serveur d’entreprise TeamCity commence avec 3 agents, ce qui fournit des configurations de construction illimitées à partir de 1 999 $.
Tableau de comparaison
Jenkins
TeamCity
Écrit en
Java
Java
Développeur
CloudBees, Kohsuke Kawaguchi, logiciels gratuits et open source
JetBrains
Licence
Licence MIT
Logiciel commercial propriétaire
Fonctionnalités
- Open source
- Riche ensemble de plugins
- Installation facile
- Prise en charge des pipelines de construction
- Plug-in de flux de travail
- Des tonnes d’intégrations
- Hébergé en interne
- Créez, déployez ou lancez n’importe quoi de manière asynchrone
- Éditeur HTML
- Constructions d’accélérateur
- Intégrations clés
- Intégration infonuagique
- Historique de construction
- Construire des infrastructures
- Suivi de la qualité du code
- Interopérabilité VCS
- Entretien du système
- Gestion des utilisateurs
- Extensibilité et personnalisation
- Commit pré-testé
Facilité d’utilisation
Oui
Oui
Interface utilisateur
Interface très basique
Il a une interface attrayante et belle
Communauté
Comme il est open-source, la communauté est plus grande
Plus petit que Jenkins
Tarification
Libre
La licence Professional Server coûte 299 $ par agent de build après 3 agents de build gratuits
tandis que
Les coûts de licence Enterprise Server commencent à 1999 $
Intégrations
1400+ intégrations
300+ intégrations
Sécurité
Moins sécurisé
Plus sécurisé
API
Prend en charge JSON, Python, API RESTful : XML
Prend en charge l’API RESTful à l’aide des messages de service et crée des plug-ins à l’aide de l’API ouverte
Prise en charge du langage de programmation
Java, PHP, C, C++, Fortran, Python et bien d’autres langages de script
Python, C++, Java, .NET, Ruby, PHP, Node.js, etc.
Prise en charge des conteneurs
Utilisation du plugin Docker pour Jenkins
Prise en charge Docker de première classe prête à l’emploi
Cycle de publication
Plus fréquent
Moins fréquent
Rapports
Fournit un rapport détaillé pour les builds et les tests
Fournit des rapports avec une meilleure interface utilisateur Web
Conclusion
Vous connaissez maintenant les différences entre les deux outils d’intégration continue les plus populaires – Jenkins et TeamCity.
Lorsque vous choisissez un outil CI pour votre organisation, vous devez vérifier quelques paramètres tels que les options d’hébergement, les intégrations disponibles, la bibliothèque de code réutilisable, la prise en charge des conteneurs et la facilité d’utilisation et d’apprentissage de l’outil. L’outil d’intégration continue qui transmet ces paramètres serait une excellente option.
Si vous avez encore des doutes, allez-y et essayez avec la version gratuite de Jenkins et TeamCity. Après avoir créé quelques versions sur ces plates-formes, vous seriez dans une situation plus confortable pour décider quel outil est le meilleur pour l’intégration continue de vos projets.