TeamCity vs. Jenkins für Continuous Integration [Update 2023]
Jenkins ist ein Open-Source-Continuous-Integration-Tool, während TeamCity ein proprietäres Angebot von JetBrains ist. TeamCity ist einfacher zu konfigurieren und einfacher zu bedienen, während Jenkins über ein reichhaltiges Plugin-Ökosystem und Integrationen verfügt.
Das ist TeamCity vs. Jenkins in Kürze, aber lesen Sie weiter, um einen tiefen Einblick in die kontinuierliche Integration zu erhalten und warum immer mehr Softwareentwicklungsteams diese Tools verwenden, um ihren Release-Zyklus zu beschleunigen.
Continuous Integration, Source Control und Build-Management sind prägende Konzepte hinter DevOps, angetrieben von der Notwendigkeit, regelmäßig neuen und sich ändernden Code in das Master-Repository von Versionskontrollsystemen wie Github oder Atlassians Bitbucket zu integrieren. Continuous Integration wird häufig mit Continuous Delivery kombiniert, um durch Automatisierung schnellere und stabilere Build-Prozesse zu erreichen.
Bei der kontinuierlichen Integration kompilieren die Teams Software und durchlaufen eine Reihe von Tests, die die Produktionsumgebung nachahmen, um einen erfolgreichen Build zu gewährleisten, wenn sie in die Produktion übertragen wird. Die Logik dahinter ist einfach, kam aber nur als Reaktion auf Probleme im traditionellen Bereitstellungszyklus. Je mehr Sie während der Entwicklung erstellen und testen können, desto weniger Softwareentwickler müssen sich um die Übertragung in die Produktion kümmern. Anstatt einmal im Quartal zu pushen, machen Continuous Integration, Continuous Delivery und Testing den Go-Live zu einer weiteren einfachen Routinebereitstellung.
TeamCity und Jenkins sind CI-Tools, die es Entwicklern ermöglichen, Code-Branches während des Entwicklungsprozesses zu integrieren und eine Reihe automatisierter Tests für sie durchzuführen. Jedes Teammitglied erhält sofortiges Feedback über die Produktionsbereitschaft seines Codes, auch wenn es nur eine einzige Zeile geändert hat. Auf diese Weise kann jeder in die Produktion gehen, während der Prozess der Erstellung, des Ausführens von Tests und des Bereitstellens automatisch erfolgt, sodass er sich auf die nächste Funktion oder Fehlerbehebung konzentrieren kann.
Obwohl beide Tools einen Großteil des gleichen Gebiets abdecken, tun sie dies auf unterschiedliche Weise. Dies liegt daran, dass Jenkins ein Open-Source-Projekt ist, während TeamCity ein proprietäres Angebot von JetBrains ist. In unserem Vergleich zeigen wir Ihnen, wie sie sich schlagen, und diskutieren einige ihrer Gemeinsamkeiten, Unterschiede und was sie jeweils für verschiedene Umgebungen geeignet macht. Beide bieten großartigen Support und Dokumentationen, aber auch hier gibt es Unterschiede in Tiefe und Qualität.
Was ist TeamCity?

Der Slogan von TeamCity "Powerful Continuous Integration out of the box" spricht für das, was sie in ihrer Lösung über eine kostenlose Option wie Jenkins hinaus bieten: Out-of-the-Box-Benutzerfreundlichkeit mit hervorragender Build-History, Quellcodeverwaltung und Build-Chain-Tools. Die übersichtliche grafische Benutzeroberfläche und die benutzerfreundlichen Funktionen machen es für einige Neulinge in der kontinuierlichen Integration schmackhafter. TeamCity läuft in einer Java-Umgebung, in der Regel auf einem Apache Tomcat-Server, kann aber sowohl auf Windows- als auch auf Linux-Servern installiert werden. TeamCity bietet gleichermaßen Unterstützung für .NET- und OpenStack-Projekte und lässt sich sowohl in Visual Studio als auch in IDEs wie Eclipse integrieren.
TeamCity hat mit seiner Benutzeroberfläche und der sicheren Standardkonfiguration viele Jenkins-Getreue bekehrt. JetBrains bietet auch eine kostenlose Edition mit bis zu 20 Build-Konfigurationen und 3 Build-Agenten an. Um darüber hinaus zu gehen, ist die kommerzielle "Enterprise"-Edition erforderlich.
Was ist Jenkins?

Jenkins ist ein Open-Source-Continuous-Integration-Server und Continuous-Delivery-Tool, das weit verbreitet ist und von vielen als De-facto-Standard für CI-Server angesehen wird. Jenkins läuft auch in Java, so dass Sie es auf Windows-, Unix- oder Linux-Betriebssystemen installieren können. Jenkins ist hochgradig erweiterbar und verfügt über eine Galerie von Plug-Ins, die sofort zur Verfügung stehen, und bietet granulare Anpassungen für CI-Vorgänge jeder Größe. Aber wie man beim Vergleich der beiden Screenshots erkennen kann, erinnert Jenkins' Oberfläche eher an die letzte Generation von Webanwendungen.
Jenkins war zuvor der Hudson CI-Server. Nach der Übernahme von Sun durch Oracle wurde der Quellcode geforkt und Oracle setzte die Entwicklung unter dem Namen Hudson fort.

Wenn Sie CI in Betracht ziehen, ziehen Sie Jenkins in Betracht. Aber wie viele funktionsreiche Open-Source-Softwareprojekte hat Jenkins den Ruf, einen schwierigen Einrichtungs- und Konfigurationsprozess zu haben, was die Lücke ist, die TeamCity mit seinem kommerziellen Angebot zu füllen versucht.
Update, Freitag, 13. Mai: Jenkins 2.0 hat die Benutzeroberfläche deutlich verbessert.
Side-by-Side-Wertung: TeamCity vs. Jenkins
1. Funktionsumfang
Wirklich, beides sind recht leistungsfähige Produkte. Jenkins ist seit einiger Zeit führend in Sachen CI, so dass sein Funktionsumfang recht umfangreich ist und viele verschiedene Möglichkeiten bietet, sowohl CI als auch Continuous Delivery zu erreichen.
TeamCity ist vielleicht nicht genau mit Jenkins vergleichbar, wenn es um den Funktionsumfang geht, aber die Unterschiede sind gering und TeamCity wird die meisten CI-Vorgänge genauso gut bedienen.
Gute Nachrichten für TeamCity, das nicht in der Lage wäre, zu konkurrieren, wenn es nicht die meisten der gleichen Funktionen wie sein Open-Source-Pendant anbieten würde, aber verschiedene Plattformen wie Ruby, .NET und Java sowie erstklassige Docker-Unterstützung unterstützen würde.
| TeamCity | Jenkins |
| 5/5 | 5/5 |
2. Benutzerfreundlichkeit
Die Benutzeroberfläche, die einfache Einrichtung und die sofort einsatzbereite Sicherheit von TeamCity geben ihm einen Vorsprung gegenüber Jenkins, wenn es um Benutzerfreundlichkeit geht. Das Verkaufsargument für jede kommerzielle Alternative zu einem Open-Source-Produkt ist, dass sie den administrativen Aufwand reduziert, indem sie den Zugriff auf den Funktionsumfang visualisiert oder anderweitig vereinfacht.
Das soll nicht heißen, dass Jenkins nicht nutzbar ist, denn das ist es und wurde von vielen Menschen gut genutzt, aber für diejenigen, die es sich leisten können und nicht die Zeit oder Lust haben, Jenkins in- und auswendig zu lernen, bietet TeamCity eine benutzerfreundlichere Schnittstelle für die gleiche Basistechnologie.
| TeamCity | Jenkins |
| 5/5 | 3/5 |
3. Unterstützung durch die Community
Sowohl TeamCity als auch Jenkins bieten auf ihrer Website Community-Support an, der es den Benutzern ihrer Software ermöglicht, Informationen auszutauschen und Probleme gemeinsam zu beheben, sowie eine Wissensdatenbank bereitzustellen, die bei der Suche nach spezifischen Antworten durchsucht werden kann.
Jenkins ist hier leicht im Vorteil, schon allein deshalb, weil es sie schon länger gibt und als Open-Source-Projekt Jenkins-Nutzer bei der Fehlerbehebung mehr auf ihre Community angewiesen sind.
| TeamCity | Jenkins |
| 4/5 | 5/5 |
4. Freigaberate
TeamCity befindet sich derzeit in der Version 2019.1.4, die am 11. Oktober 2019 veröffentlicht wurde. Ihre Veröffentlichungen sind regelmäßig und gut dokumentiert.
Die Release-Historie von Jenkins ist ziemlich beeindruckend und wird in ihrem Änderungsprotokoll mit detaillierten Informationen zu jeder Version zusammengefasst. Die Version 2.200 wurde am 14. Oktober 2019 live geschaltet.
Da sie CI-Produkte herstellen, wissen diese Unternehmen, dass der Beweis im Pudding liegt, daher sollte es nicht überraschen, dass ihre Freigabeprozesse von hoher Qualität sind.
| TeamCity | Jenkins |
| 5/5 | 5/5 |
5. Preisgestaltung und Support
>TeamCity bietet zwei Versionen seines CI-Produkts an. TeamCity Professional ist kostenlos für 100 Build-Konfigurationen und drei Build-Agenten. Zusätzliche Build-Agent-Lizenzen können für 299 US-Dollar erworben werden und enthalten einen zusätzlichen Build-Agent und zehn zusätzliche Build-Konfigurationen.
TeamCity Enterprise ermöglicht eine unbegrenzte Anzahl von Build-Konfigurationen und Lizenzen ab 1999 US-Dollar für 3 Build-Agents und lässt sich für 21.999 US-Dollar auf bis zu 100 Agenten skalieren. Die Preise sind 50% günstiger für Startups und kostenlos für Open-Source-Projekte.
Wie wir bereits erwähnt haben, ist Jenkins Open Source, unter der MIT-Lizenz, und kann als solche kostenlos heruntergeladen und verwendet werden. Aus diesem Grund sollten kleinere Unternehmen CI aus der Perspektive "Warum sollten wir nicht Jenkins verwenden?" angehen.
Eine mögliche Antwort auf diese Frage könnte sein, dass Ihrem Unternehmen die Arbeitskräfte, das Wissen oder die Fähigkeit fehlen, eine Jenkins-Lösung zu organisieren und zu verwalten. TeamCity bietet professionelle Support-Services an, während der Support für Jenkins hauptsächlich aus der Community und Online-Ressourcen kommt, obwohl Drittunternehmen Jenkins-spezifische professionelle Dienstleistungen anbieten.
| TeamCity | Jenkins |
| 2/5 | 5/5 |
6. API und Erweiterbarkeit
Sowohl TeamCity als auch Jenkins bieten eine RESTful API. Die API von Jenkins gibt es in drei Varianten: XML, JSON und Python. Jenkins bietet eine größere Erweiterbarkeit, da fast jedes Teil nach Bedarf angepasst werden kann. Ihre Erweiterbarkeitsseite bietet hervorragende Ressourcen für fast jede Art von möglicher Anpassung. TeamCity hat weit weniger Informationen auf seiner Website zur Verfügung, ein weiterer Unterschied zwischen den kommerziellen und den Open-Source-Angeboten. Die TeamCity-Benutzer scheinen jedoch insgesamt mit der API zufrieden zu sein.
| TeamCity | Jenkins |
| 4/5 | 5/5 |
7. Integrationen von Drittanbietern
Plugins sind das A und O für Jenkins, das Hunderte von kostenlosen Plugins anbietet, von der Quellcodeverwaltung über Build-Tools bis hin zu sprachspezifischen Entwicklungstools. Diese bereits vorhandene Datenbank mit nützlichen Plugins erleichtert die Integration von Jenkins in Ihre Umgebung erheblich und erspart hoffentlich kostspielige interne oder vertraglich vereinbarte Anpassungen. TeamCity hat außerdem über 380 kostenlose, von der Crowd entwickelte Plugins zur Verfügung, die sie ohne Mängelgewähr außerhalb ihres unterstützten kommerziellen Produkts anbieten. TeamCity bietet auch großartige Cloud-Integrationen (Google Cloud, AWS, VMWare usw.) sowie "Schlüssel"-Integrationen (VSCode, Jira, sogar NuGet).
| TeamCity | Jenkins |
| 4/5 | 5/5 |
8. Unternehmen, die es verwenden
TeamCity hat eine breite Palette von Top-Unternehmen zu seinen Kunden, darunter Internet-Giganten Twitter, eBay und Wikipedia. Jenkins hat auch keinen Mangel an großen Namen auf seiner Nutzerliste, darunter Dell, Tumblr und Netflix. Es liegt auf der Hand, dass beide Produkte in der Lage sind, selbst im größten Maßstab auf hohem Niveau zu arbeiten.
| TeamCity | Jenkins |
| 5/5 | 5/5 |
9. Lernkurve
Wie bei der Benutzerfreundlichkeit ist die Lernkurve bei TeamCity kürzer als bei Jenkins, was den Wert des kommerziellen Produkts angeht. Menschen, die neu in der CI selbst sind, haben es möglicherweise leichter, die Konzepte und Verfahren in der überlegenen Benutzeroberfläche von TeamCity zu verstehen, anstatt sich an die altmodische Benutzeroberfläche von Jenkins anzupassen. Nichtsdestotrotz gibt es eine Fülle von Dokumentationen für Jenkins, und gesalzene Systemadministratoren könnten die Linux-ähnliche Essenz der proprietären Blackbox von TeamCity vorziehen.
| TeamCity | Jenkins |
| 5/5 | 3/5 |
10. Sicherheitsbewertung
Sowohl JetBrains als auch Jenkins haben externe Cybersicherheitsbewertungen im "guten" Bereich. Die Mutter-Website von TeamCity, JetBrains, hat eine respektable Sicherheitsbewertung von 827/950, während Jenkins mit 865/950 besser abschneidet.
Anzeigetafel und Zusammenfassung
| TeamCity | Jenkins | |
| Funktionsumfang | 5/5 | 5/5 |
| Benutzerfreundlichkeit | 5/5 | 3/5 |
| Unterstützung durch die Community | 4/5 | 5/5 |
| Release-Rate | 5/5 | 5/5 |
| Preisgestaltung und Support | 2/5 | 5/5 |
| API und Erweiterbarkeit | 4/5 | 5/5 |
| Integrationen von Drittanbietern | 4/5 | 5/5 |
| Unternehmen, die es verwenden | 5/5 | 5/5 |
| Lernkurve | 5/5 | 3/5 |
| Sicherheitsbewertung | 827 | 865 |
| Gesamt | 4,4/5 | 4,6/5 |
Es ist ein knappes Ergebnis, aber die großen Unterschiede zwischen den beiden Produkten sollten Sie leiten: Benötigen Sie eine endlos erweiterbare Open-Source-Lösung, die Sie bereit sind zu lernen, oder würden Sie lieber im Voraus für eine kommerzielle Lösung bezahlen, die darauf abzielt, die Benutzerfreundlichkeit zu erhöhen? Beide Lösungen können Ihre CI/CD-Umgebung gut ausführen und scheinen ihre Angebote in Zukunft nur noch zu verbessern. Denken Sie daran, dass CI und CD großartig sind, aber durch eine Transparenzlösung wie UpGuard ergänzt werden können. Sicherzustellen, dass Ihre Konfigurationen Ihren Erwartungen entsprechen, ist der wichtige erste Schritt in Richtung CI, CD und Automatisierung.
Andere Tools für kontinuierliche Integrationen, die Sie in Betracht ziehen sollten
Es gibt andere CI/CD-Server. Bambus von Atlassian ist eine beliebte Wahl. Wie Jenkins und TeamCity ermöglicht es Entwicklern, Quellcode automatisch zu erstellen, zu integrieren und zu testen und dann Apps für die Entwicklung vorzubereiten. Bamboo arbeitet nahtlos mit anderen Atlassian-Tools wie Jira (Projektmanagement) und Hipchat zusammen.
Eine weitere beliebte Wahl ist GitLab CI, neben Test- und Build-Projekten kann GitLab CI die Builds auch in Ihrer Infrastruktur bereitstellen, was Ihnen die Möglichkeit gibt, Ihre verschiedenen Bereitstellungen zu verfolgen, indem Sie wissen, wohin jeder Codeteil gegangen ist. Das Gute an GitLab CI ist, dass es als Teil von GitLab kostenlos angeboten wird. Es ist so einfach wie das Hinzufügen einer .gitlab-ci.yml Datei zum Stammverzeichnis Ihres Repositorys und die Konfiguration Ihres GitLab-Projekts für die Verwendung eines Runners. Anschließend löst jeder Commit oder Push die CI-Pipeline aus, die aus drei Phasen besteht: Erstellen, Testen und Bereitstellen.
Travis CI ist eine weitere Alternative, die mehrere Laufzeiten (z. B. Node.js- oder PHP-Versionen), Datenspeicher und mehr bietet. Aus diesem Grund bedeutet das Hosten Ihres Projekts auf travis-ci.com, dass Sie Ihre Bibliothek oder Anwendungen mit mehreren Runtimes und Datenspeichern testen können, ohne sie lokal installieren zu müssen.
CircleCI ist eine weitere Wahl. Es handelt sich um eine Continuous-Integration- und Delivery-Plattform, die Softwareteams bei der Veröffentlichung von Code unterstützt, indem sie den Build-, Test- und Bereitstellungsprozess automatisiert. Nicht wie die anderen oben aufgeführten Alternativen.