Was sind die Hauptunterschiede zwischen Jenkins und TeamCity, wenn man es gewohnt ist, mit Jenkins zu arbeiten?

10

Diese Werkzeuge scheinen sehr ähnliche Eigenschaften zu haben.

Wie kompliziert wäre es, TeamCity zu verwenden, nachdem man sich an die Arbeit an Jenkins gewöhnt hat? Gibt es bestimmte Konzepte, die man beachten muss?

Ricardo Herrera
quelle
3
Ich möchte empfehlen, dass Ihre Überschriftenfrage der Frage im Text etwas näher kommt. Sie fragen nicht nach allen Unterschieden, sondern nur nach den Unterschieden, die es schwierig machen würden, zwischen ihnen zu wechseln?
Avi
2
Realted Blog-Beitrag: upguard.com/articles/…
Tensibai

Antworten:

8

TeamCity:

Es sieht besser aus, wenn dies für Ihr Team wichtig ist, sollte es definitiv Gewicht haben. Wenn es jedoch SEHR wichtig ist, werden Sie wahrscheinlich Tools oder eine Art Dashboard-Overlay erstellen, um Ihr Team zu unterstützen, an welchem ​​Punkt Sie wirklich wollen ist derjenige mit der besten API. Ich habe die Jenkins-API noch nicht ausprobiert, daher kann ich sie nicht vergleichen. Die TC-API sollte Ihnen jedoch das bieten, was Sie benötigen.

Ihre Unterstützung ist ziemlich gut, die Jungs reagieren relativ schnell und sind höflich. Dies bedeutet jedoch nicht, dass Sie das bekommen, was Sie wollen. Wenn Sie das System auf unkonventionelle Weise verwenden, können Sie Ihren Fehler sehr gut in die Regale stellen ... ist uns passiert. An diesem Punkt wird die Verwendung ziemlich frustrierend. Sie sehen sich mit einer Black Box konfrontiert, die kaum eine Alternative lässt, als sie zu umgehen. An diesem Punkt können die Dinge hackisch und hässlich werden.

Es ist im Allgemeinen ziemlich schnell erledigt, was Sie wollen, und die Quasi-API für die Protokollinteraktion ist eine sehr nette Funktion, wenn Sie in Ihrer Pipeline viele benutzerdefinierte Skripte erstellen.

Jenkins:

Schlachtgeprüft und umfangreich.

Aber es ist etwas weniger hübsch, würde nicht so weit gehen zu sagen, dass es hässlich ist, man könnte sagen, dass Funktionalität vor dem Erscheinen kommt.

Ich bin mir ziemlich sicher, dass Sie einen privaten bezahlten Supportplan von Drittunternehmen finden können, wenn Sie sich umschauen. Wenn dies für Ihren Shop wichtig ist, blockieren Sie nicht nur den "OpenSource" -Teil des Geschäfts, die Community ist ziemlich expansiv.

Viele, ich meine viele Plugins. Auch hier beschränken Sie sich nicht nur auf die offiziellen Kanäle, es gibt auch viel mehr Plugins in Github und anderen Orten.

Ich fand, dass beide ungefähr gleich schnell sind, um damit zu beginnen, obwohl Sie bei Jenkins möglicherweise mit Plugins dynamischer sein müssen als mit TeamCity. Wenn Sie also eine enge IT-Abteilung haben und keinen Administratorzugriff auf den Server erhalten, kann dies ein Problem darstellen. Zusammengesetzt aus ihrem viel schnelleren Veröffentlichungszyklus als TeamCity (wöchentlich).

Ich fand heraus, dass Jenkins mehr Paradigmen für den Veröffentlichungszyklus unterstützt als TeamCity. Es könnte einfacher sein, eine sofort einsatzbereite Prozessvorlage zu finden, die Ihren Vorstellungen besser entspricht. Ich sage dies mit Reserven, da ich mich seit 2 Jahren nicht mehr mit TeamCity befasst habe.

Ich persönlich bevorzuge Jenkins hauptsächlich, weil ich für solche Tools voreingenommen gegenüber Open Source bin und in geringerem Maße, weil ich festgestellt habe, dass Struktur und Konfigurationsmechanismus mehr mit mir übereinstimmen.

YMMV

Newtopian
quelle
Ich würde auf Jenkins Seite die Möglichkeit hinzufügen, tatsächlich zu vorhandenen Plugins beizutragen oder ein eigenes für benutzerdefinierte Funktionen zu schreiben. wiki.jenkins-ci.org/display/JENKINS/Plugin+tutorial
Dan Cornilescu
Richtig, obwohl dies auch für TeamCity gilt (siehe unten). Jenkins ermöglicht es jedoch, den Kern zu hacken, was für TeamCity nicht gilt. Abhängig von der Verfügbarkeit von Java-Programmen in Ihrem Team und Ihrer IT-Umgebung kann es wichtig sein oder auch nicht . Confluence.jetbrains.com/display/TCD9/… .
Newtopian
6

Insgesamt ist die Benutzererfahrung ziemlich ähnlich. TeamCity hat eine schönere Benutzeroberfläche, ist aber nicht besonders einfach zu bedienen. In Bezug auf die Funktionalität sind die beiden effektiv gleichwertig. Der größte Teil der Terminologie ist ebenfalls dieselbe.

Die Plugin-Ökosysteme sind jedoch ziemlich unterschiedlich. Sie sollten sich auf jeden Fall ansehen, welche Plugins für TeamCity verfügbar sind, um das zu erreichen, was Sie versuchen, da dies wahrscheinlich der größte Schmerzpunkt im Hinblick auf einen Übergang sein wird. Wenn Sie es gewohnt sind, bestimmte Jenkins-Plugins auszuführen, müssen Sie lernen, a) welche Funktionen von TeamCity bereitgestellt werden, ohne dass Plugins erforderlich sind, und b) welche Plugins verfügbar sind, um verbleibende Funktionen hinzuzufügen, und wie sie sich von den von Ihnen verwendeten Plugins unterscheiden Ich bin es gewohnt in Jenkins.

Adrian
quelle
4

In den meisten Punkten stimme ich Adrian zu. Die Benutzeroberfläche von TeamCity ist definitiv hübscher und Sie erhalten mit TeamCity viel mehr integrierte Funktionen als mit Jenkins. Aber Jenkins ist Open Source und obwohl die Qualität (und das Dokument) von Plugin zu Plugin sehr unterschiedlich sind, ist das Ökosystem umfangreich.

Ich benutze Jenkins seit Jahren und habe gerade erst angefangen, TeamCity zu benutzen. Beispielsweise ist das Einrichten abhängiger Jobs in Jenkins viel einfacher und intuitiver als in TeamCity.

matthewcummings516
quelle