Quelle est la différence entre Jenkins et TeamCity ?

Publié: 2021-05-11

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 arrivée là où le développement s'est produit de manière itérative, et maintenant avec DevOps, le développement et les opérations se déroulent 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 fournir l'application beaucoup plus rapidement et de manière fiable. C'est une méthodologie qui automatise toutes les étapes depuis le besoin 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.

Maintenant, il existe de nombreux outils disponibles pour CI/CD, il peut donc être déroutant de choisir les bons outils.

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

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 construction 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 TeamCity ?

TeamCity est un serveur commercial CI/CD é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. Avec 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 serveur Professional, vous pouvez créer 100 builds et 3 agents de build pour un coût nul.

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 charmante et l'interface permet d'attirer de nombreux débutants qui commencent par l'intégration continue et recherchent un outil de CI. Dans l'interface TeamCity, vous pouvez baliser, commenter et épingler la construction pour mieux les organiser.

L'interface de Jenkins est old school. Ce n'est pas très attrayant à regarder et a une énorme marge 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 plugin, Jenkins est habitué à créer des builds et à analyser le code, ce qui contribue à améliorer la qualité du code.

D'autre part, en plus de certaines fonctionnalités d'outils CI classiques, 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 effectuer facilement le suivi des problèmes. De plus, les modifications de build et l'historique des échecs sont stockés pour conserver les informations passées sur les statistiques, exécuter les builds passées et tester les rapports d'historique.

Installation

Pour installer Jenkins sur votre système, vous devez disposer de Java. 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 pense qu'aucun outil CI n'est même 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 des plugins bien moindres. Mais il propose 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 que 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 conclusion de sécurité. TeamCity fournit une intégration avec le plug-in de sécurité Snyk, qui peut effectuer une analyse des vulnérabilités dans le pipeline de build. Il vous aide à identifier et à corriger 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.

Prix

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 une bonne somme en ne dépensant rien pour un outil de 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 100 configurations de build et 3 agents de build gratuitement, et après cela, 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 build 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
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 n'importe quoi asynchrone
  • Éditeur HTML
  • L'accélérateur se construit
  • Intégrations clés
  • Intégration Cloud
  • 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
  • Validation pré-testée
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
Prix Libérer 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 Plus de 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 de messages de service et crée des plug-ins à l'aide d'Open API
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 Utiliser le plugin Docker pour Jenkins Prise en charge de Docker de première classe prête à l'emploi
Cycle de sortie 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 passe ces paramètres serait une excellente option.

Si vous avez encore des doutes, allez-y et essayez-le 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.