Examinons ces deux outils d’intégration continue populaires et leurs différences.

La méthode du cycle de vie du développement logiciel a changé radicalement au cours de la dernière décennie.

Auparavant, le modèle en cascade était la voie à suivre, puis est venue la méthodologie agile où le développement s’est fait de manière itérative, et maintenant avec DevOps, le développement et les opérations se font 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 les besoins de l’entreprise 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.

Aujourd’hui, de nombreux outils sont disponibles pour le CI/CD, et il peut être difficile de choisir les bons outils.

Pourquoi Jenkins ?

Jenkins est l’outil d’intégration continue open-source le plus populaire. C’est le standard de facto pour les solutions d’intégration continue.

Vous pouvez installer Jenkins sur les principaux systèmes d’exploitation tels que Windows ou Linux, car il fonctionne sous Java. Il a été créé à l’origine comme un outil d’automatisation de la construction pour les applications Java. Depuis, il a beaucoup évolué et dispose de plus de 1400 plugins pour s’intégrer facilement à d’autres plateformes et outils.

jenkins

Jenkins est l’outil de base pour l’intégration continue et la livraison continue dans le processus de développement de logiciels. Il est simple à installer et fournit un tableau de bord pour la gestion de projet, auquel on peut facilement accéder par le biais d’un navigateur.

Les développeurs utilisent Jenkins pour construire, intégrer, tester et déployer leur code automatiquement. Tout d’abord, les développeurs enregistrent leur code, puis Jenkins récupère le code source modifié, déclenche une construction et exécute un test si nécessaire. Une fois la construction terminée, vous obtiendrez le résultat dans le tableau de bord de Jenkins, et une notification peut être envoyée au développeur si elle est définie.

Pourquoi TeamCity ?

TeamCity est un serveur CI/CD commercial qui est également basé sur Java. Il s’agit d’un outil d’automatisation et de gestion de la construction 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 dispose d’un support d’intégration pour l’outil Jira afin de suivre facilement les problèmes.

TeamCity prend en charge le cadre .NET, et vous pouvez facilement intégrer TeamCity à plusieurs IDE comme Eclipse, Visual Studio, etc. Avec l’intégration du dépôt d’artefacts de construction, TeamCity peut stocker les artefacts sur le système de fichiers du serveur TeamCity ou sur un stockage externe.

Avec la version gratuite de TeamCity de la licence de serveur professionnel, vous pouvez créer 100 builds et 3 agents de build pour un coût nul.

Jenkins vs. TeamCity

Open-Source vs. Commercial

La différence la plus fondamentale est que Jenkins est un outil d’intégration continue open-source et que TeamCity est un outil commercial. Le projet Jenkins est publié sous licence MIT et soutenu par des développeurs du monde entier. TeamCity est développé et maintenu par sa société mère JetBrains.

Interface (en anglais)

L’interface de TeamCity est agréable et permet d’attirer de nombreux débutants qui s’initient à l’intégration continue et recherchent un outil d’IC. Dans l’interface de TeamCity, vous pouvez taguer, commenter et épingler les builds pour mieux les organiser.

L’interface de Jenkins est ancienne. Elle n’est pas très attrayante et il y a beaucoup d’améliorations à apporter 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 d’IC ne peuvent pas offrir. Grâce à ces plugins, Jenkins est utilisé pour créer des builds et analyser le code, ce qui permet d’améliorer la qualité du code.

D’un autre côté, TeamCity est livré avec de nombreuses fonctionnalités prêtes à l’emploi, en plus des fonctionnalités habituelles des outils de CI. Il prend en charge plusieurs plateformes telles que Java, Ruby, .NET, etc. Vous pouvez également construire des images Docker via TeamCity. Grâce à la prise en charge de Bugzilla et de Jira, vous pouvez facilement effectuer le suivi des problèmes. De plus, l’historique des modifications et des échecs de la construction est stocké pour conserver les informations passées sur les statistiques, l’exécution des constructions passées et les rapports sur l’historique des tests.

Installation de l’application

Pour installer Jenkins sur votre système, vous devez disposer de Java. L’installation 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 avec Jenkins sur son interface web.

L’installation de TeamCity est également très simple. Vous devez télécharger le serveur TeamCity, consulter la documentation et suivre les instructions mentionnées.

Intégrations

Je ne pense pas qu’un outil d’IC soit proche de la concurrence de Jenkins lorsque l’on parle de capacités d’intégration. La popularité de Jenkins sur le marché est due au fait qu’il offre une intégration avec des centaines de plugins gratuits.

Comparé à Jenkins, TeamCity peut intégrer beaucoup moins de plugins. Mais il offre quelques intégrations exclusives, qui s’ajoutent à ses “fonctionnalités prêtes à l’emploi”. Il prend en charge le cadre .NET et s’intègre à Visual Studio Team Services, offrant une intégration en nuage avec des fournisseurs de nuage tels que AWS, Azure, GCP, VMware.

Sécurité

L’avantage de TeamCity en tant que logiciel commercial est que JetBrains le prend en charge de manière à ce qu’il soit corrigé en priorité en cas de découverte d’un problème de sécurité. TeamCity offre une intégration avec le plugin de sécurité Snyk, qui peut effectuer une analyse des vulnérabilités dans le pipeline de construction. Il vous aide à identifier et à remédier à tous les risques et menaces présents dans vos constructions.

Jenkins étant un logiciel libre, l’atténuation des risques peut être retardée car elle dépend de la communauté des développeurs.

La communauté

La communauté de Jenkins est plus vaste que celle de TeamCity. Comme Jenkins est un logiciel libre, n’importe quel développeur peut contribuer à ce projet. Chaque jour, de nouveaux développeurs apportent leur contribution à ce projet afin d’ajouter de nouvelles fonctionnalités et d’en faire un meilleur outil.

D’autre part, TeamCity est un outil commercial maintenu par l’équipe de JetBrains. Il dispose d’une communauté de support professionnelle pour développer cet outil.

Prix

L’utilisation de Jenkins est gratuite, puisqu’il s’agit d’un logiciel libre, et c’est pourquoi il constitue un choix préférable pour de nombreuses organisations. Les organisations économisent beaucoup en ne dépensant rien pour un outil de CI comme Jenkins.

TeamCity n’est pas gratuit. Il est livré avec deux licences, à savoir une licence de serveur professionnel et une licence de serveur d’entreprise. Dans une licence de serveur professionnel, vous pouvez utiliser 100 configurations de construction et 3 agents de construction gratuitement, et ensuite, 299$ pour 1 agent de construction supplémentaire et 10 configurations de construction. La licence TeamCity pour serveur d’entreprise commence avec 3 agents, ce qui vous permet d’utiliser un nombre illimité de configurations de construction à partir de 1 999$.

Tableau de comparaison

Jenkins TeamCity
Écrit en Java Java
Développeur CloudBees, Kohsuke Kawaguchi, Logiciels libres et open-source JetBrains
Licence Licence MIT Logiciel commercial propriétaire
Caractéristiques
  • Open-source
  • Riche ensemble de plugins
  • Installation facile
  • Prise en charge des pipelines de construction
  • Plugin de flux de travail
  • Des tonnes d’intégrations
  • Hébergé en interne
  • Construisez, déployez ou lancez tout ce qui est asynchrone
  • Editeur HTML
  • Contrôlez les constructions
  • Intégrations clés
  • Intégration dans le nuage
  • Historique de construction
  • Infrastructure de construction
  • Suivi de la qualité du code
  • Interopérabilité VCS
  • Maintenance du système
  • Gestion des utilisateurs
  • Extensibilité et personnalisation
  • Engagement pré-testé
Facilité d’utilisation Oui Oui
Interface utilisateur Interface très basique L’interface est belle et attrayante
Communauté Comme il s’agit d’un logiciel libre, la communauté est plus grande Plus petit que Jenkins
Prix Gratuit La licence Professional Server coûte 299$ par agent de construction après 3 agents de construction gratuits

alors que

La licence Enterprise Server coûte à partir de 1999$

Intégrations 1400 intégrations 300 intégrations
Sécurité Moins sécurisé Plus sécurisé
API Supporte JSON, Python, RESTful API : XML Prise en charge de l’API RESTful à l’aide de messages de service et création de plugins à l’aide de l’API ouverte
Prise en charge des langages de programmation Java, PHP, C, C , Fortran, Python et bien d’autres langages de programmation Python, C , Java, .NET, Ruby, PHP, Node.js, etc
Prise en charge des conteneurs Utilisation du plugin Docker pour Jenkins Prise en charge de Docker de premier ordre dès le départ
Cycle de publication Plus fréquent Moins fréquent
Rapports Fournit des rapports détaillés pour les builds et les tests Fournit des rapports avec une meilleure interface 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 d’intégration continue 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 codes réutilisables, le support des conteneurs et la facilité d’utilisation et d’apprentissage de l’outil. L’outil d’intégration continue qui répond à ces paramètres est une excellente option.

Si vous avez encore des doutes, essayez Jenkins et TeamCity en version gratuite. Après avoir créé quelques builds sur ces plateformes, vous serez dans une situation plus confortable pour décider quel outil est le meilleur pour l’intégration continue de vos projets.