Bambus Vs. Hudson (aka Jenkins) gegen alle anderen CI-Systeme [geschlossen]

119

Hat da draußen jemand Erfahrung mit Hudson und Bamboo? Irgendwelche Gedanken zu den relativen Stärken und Schwächen dieser Produkte?

Okay, da die Leute immer wieder andere CI-Produkte erwähnen, werde ich dies weiter öffnen. Hier ist mein allgemeines Problem. Ich möchte ein CI-System für ein neues Projekt einrichten. Dieses Projekt wird wahrscheinlich Java-Komponenten (WARs und JARs), einige Python-Module und möglicherweise sogar eine .NET-Komponente enthalten. Ich möchte also einen CI-Server, der:

  1. Umgang mit mehreren Sprachen,
  2. Stellen Sie Artefakte auf Servern bereit (dh stellen Sie den Krieg bereit, wenn alle Komponententests bestanden wurden.)
  3. Ich möchte auch etwas, das in ein anständiges Tool zur Codeabdeckung integriert ist.
  4. Gut aussehende Berichte sind nett, aber nicht unbedingt erforderlich.
  5. Mehrere Benachrichtigungsmechanismen, wenn etwas schief geht.
  6. Ich mache mir keine Sorgen um das Hosting. Ich werde es entweder auf einem lokalen Server oder auf einer Amazon-Instanz ausführen.
  7. Auch das ist vielleicht ein Kinderspiel, aber gibt es etwas, das auch iPhone-Apps erstellen kann?
Karthik Ramachandran
quelle
2
Um das Wasser noch mehr durcheinander zu bringen, haben Sie Team City in Betracht gezogen? Sie haben eine kostenlose Version (begrenzt durch die Anzahl der Benutzer). Ich habe es in der Vergangenheit verwendet und mag die darin enthaltenen Informationen sehr.
Shane Courtrille
Hudson oder Jenkins? ( kohsuke.org/2011/01/11/bye-bye-hudson-hello-jenkins )
Romain Linsolas
2
Lassen Sie das Wasser weiter durcheinander bringen :) Integrityapp.com Dies kann auf Heroku bereitgestellt werden, sodass Sie kostenlos einen CI-Server haben können.
Nerian
Ich habe TeamCity nicht gesehen. Und ich wusste nicht, dass Oracle Hudson gezwungen hat, Jenkins zu werden. Ich werde die Frage bearbeiten, um dies widerzuspiegeln.
Karthik Ramachandran
2
Hier gibt es einen Thread dazu: forums.atlassian.com/message.jspa?messageID=257292121
sal

Antworten:

50

Haftungsausschluss: Ich arbeite an Bamboo und werde daher keine Kommentare zu Funktionen anderer CI-Produkte abgeben, da meine Erfahrung mit diesen Produkten begrenzt ist.

Um Ihre spezifischen Anforderungen zu beantworten:

Behandeln Sie mehrere Sprachen

Bamboo unterstützt sofort mehrere Sprachen. Kunden verwenden es mit Java, .Net, PHP, JavaScript usw. Allerdings sind die meisten Build-Server generisch genug, um zumindest ein Skript auszuführen, das Ihren Build-Prozess starten kann.

Stellen Sie Artefakte auf Servern bereit (dh stellen Sie den Krieg bereit, wenn alle Komponententests bestanden wurden.)

Bamboo 2.7 unterstützt Build Stages, mit denen Sie Ihren Build in eine Unit Test-Phase und eine Deployment-Phase aufteilen können. Nur wenn die Unit-Test-Phase erfolgreich ist, wird der Build zur Bereitstellungsphase weitergeleitet. In Bamboo 3.0 unterstützen wir die gemeinsame Nutzung von Artefakten zwischen den Phasen, sodass Sie in der ersten Phase ein Artefakt (z. B. Ihren Krieg) erstellen und dieses Artefakt in den folgenden Phasen zum Testen und Bereitstellen verwenden können.

Ich möchte auch etwas, das in ein anständiges Tool zur Codeabdeckung integriert ist.

Bamboo bietet Unterstützung für Clover und ein Plugin für Cobertura .

Gut aussehende Berichte sind nett, aber nicht unbedingt erforderlich.

Bamboo hat eine ganze Reihe von Berichten, die nett, aber nicht unbedingt notwendig sind :)

Mehrere Benachrichtigungsmechanismen, wenn etwas schief geht.

Bamboo kann Sie per E-Mail, RSS, IM, einem IDE-Plugin oder einem schönen Wallboard benachrichtigen, das für das gesamte Team sichtbar ist.

Ich mache mir keine Sorgen um das Hosting. Ich werde es entweder auf einem lokalen Server oder auf einer Amazon-Instanz ausführen.

Erfahrungsgemäß ist es im Allgemeinen günstiger, einen eigenen CI-Server zu hosten. Wenn Sie jedoch skalieren müssen, können Sie mit Bamboo Ihre Builds ganz einfach an zusätzliche lokale Agenten verteilen oder über Elastic-Agenten auf Amazon skalieren.

Auch das ist vielleicht ein Kinderspiel, aber gibt es etwas, das auch IPhone-Apps erstellen kann?

Ähnlich wie bei der Antwort auf Ihre erste Frage können die meisten CI-Server iPhone-Apps auf verschiedene Weise erstellen. Es ist jedoch möglich, dass etwas mehr Skripte erforderlich sind.

Preis: Bambus ist nicht kostenlos (abgesehen von unserem kostenlos Starterlizenz ) / libre / open-source, aber Sie erhalten den Quellcode von Bamboo, wenn Sie eine kommerzielle Lizenz und vollen Support erwerben. Im Vergleich zu den Kosten für Rechenleistung und potenzieller Wartung, die für einen CI-Server erforderlich sind, sind die Kosten für eine Bamboo-Lizenz eher gering.

Hoffe das hilft.

jens
quelle
15
Die Preisstruktur von Bamboo ist fehlerhaft. Es wird nicht zwischen Benutzern mit parallelen Builds und Benutzern unterschieden, die lediglich Remote-Agenten für plattformübergreifende Tests benötigen. Wenn Sie versuchen, einen winzigen Build-Server für Windows, Linux und Mac (möglicherweise sogar unterschiedliche Versionen von jedem) zu betreiben, steigt der Preis schnell auf Tausende von Dollar pro Jahr. Ein besserer Ansatz wäre gewesen, für gleichzeitige Builds Gebühren zu erheben.
Gili
Bambus 'großes Merkmal gegen Jenkins ist das automatische Zusammenführen von Zweigen, um ein Abdriften zwischen Entwicklern in Teams zu verhindern. Leider unterstützen sie dies nur für GIT und Mercurial, sodass jeder, der SVN oder etwas anderes verwendet, nicht funktioniert. Aber Jenkins hat das SVN Merge-Plugin, mit dem wir das machen können.
George_h
1
@george_h Das GIT-Plugin für Jenkins unterstützt jetzt das automatische Zusammenführen von Zweigen. Ich bin mir nicht sicher, wann dies implementiert wurde.
Slu
1
Das ist großartig. Ich habe tatsächlich sowohl Bambus als auch Jenkins verwendet und Jenkins war bei weitem besser. Am Ende ist alles nur ein Server, auf dem Ant + Maven läuft.
George_h
40

Ich habe keinen Bambus verwendet, aber ich habe Hudson, Cruise und TFS verwendet, und von allen war Hudson zweifellos der Beste. Es ist lächerlich einfach einzurichten und hat eine wirklich schöne Web-GUI für die Projektkonfiguration. Das Tolle an Hudson ist, dass es so ziemlich jede Sprache und Funktion unterstützt, die Sie sich wünschen können, vorausgesetzt, jemand hat ein Plug-In dafür geschrieben, das er wahrscheinlich hat.

http://wiki.hudson-ci.org/display/HUDSON/Plugins

Wir haben es verwendet, um .NET-, Java- und C ++ - Builds in zeitlichen Intervallen sowie SVN-Checkins mit automatisierten Test-Harnesses auszuführen, und es war großartig. Der Ort, an dem ich zuletzt gearbeitet habe, hat kurz vor meiner Abreise mit der iPhone-Entwicklung begonnen, und ich glaube, sie haben Hudson auch dafür verwendet.

Plus es ist kostenlos!

Steve Whitfield
quelle
35

Bamboo vs Hudson scheint auf einer sehr oberflächlichen Ebene auf Folgendes zurückzuführen zu sein:

  • Bambus: Einfach zu bedienen und gut aussehend
  • Jenkins: Rau an den Rändern, aber weitaus flexibler als Bambus

Sowohl Bamboo als auch Jenkins haben zahlreiche Fehler (Sie werden auf Probleme stoßen), aber zumindest bei Jenkins ist es viel wahrscheinlicher, dass Sie eine Problemumgehung haben, bis diese behoben ist. Mit Bamboo warten Sie auf ein Update.

Gili
quelle
Ich hätte gedacht, dass Sie mit Bamboo zumindest kommerzielle Unterstützung dafür haben.
Keiki
3
@keiki, ja und nein. Ja, Sie erhalten kommerziellen Support, der jedoch viel Geld kostet (Sie müssen sich fragen, ob Kosten / Nutzen sinnvoll sind). Es ist erwähnenswert, dass viele der Probleme, auf die Sie stoßen werden, durch fehlende Funktionen verursacht werden. Atlassian wird sein Bestes geben, um Ihnen zu helfen, aber am Ende des Tages verfügen sie nur über begrenzte Ressourcen und es kann Jahre dauern, bis sie die von Ihnen angeforderten Funktionen hinzugefügt haben (abhängig von ihrer Beliebtheit).
Gili
1
+1 für Flexibilität. Bambus ist für ein modernes Werkzeug wirklich begrenzt, auch für ein CI-Werkzeug, bei dem die Dinge nicht von Grund auf neu gemacht werden. Darüber hinaus war Atlassian nicht in der Lage, Bambusfehler so zu priorisieren / zu behandeln, wie wir es von OSS gewohnt sind.
Paddy
16

Haftungsausschluss: Ich arbeite mit Jenkins.

In unserer Organisation (ziemlich groß, mehr als 100 Entwickler) fanden wir auch diese beiden Funktionen sehr nützlich:

  1. CAS-Plugin mit Matrixprojekt-Sicherheitsstrategie
  2. Pipeline-Plugin erstellen
  3. LTS-Release-Zeitplan.

Zu Ihren Fragen:

  1. OK
  2. SCP PLUGIN oder SSH PLUGIN
  3. Wir verwenden FINDBUGS, Static Analysis Collector Plug-In, Static Code Analysis Plug-Ins und Task Scanner Plugin
  4. Zurück bei Punkt 3 + Jenkins DocLinks Plugin
  5. Wir verwenden das E-Mail-Jenkins-E-Mail-Erweiterungs-Plugin, es unterstützt jedoch auch andere Systeme wie RSS, Twitter Publish, SMS ...
  6. Wir arbeiten in einem Tomcat-Hosting vor Ort.
  7. Ja.
Federico Paolantoni
quelle
5

Nun, ich habe Bamboo bisher noch nicht verwendet, aber ein Unterschied ist, dass Hudson freie / libre / Open-Source-Software ist.

Puce
quelle
10
downvoted - diese Antwort ist wahr, aber trivial (vermutlich weiß dies jemand, der beide Produkte kennt); OP sucht nach Funktionsvergleichen.
Jason S
1

Wenn Sie bereit sind, dafür zu bezahlen, macht Anthill all diese Dinge, die Sie sich ansehen. Wir verwenden es in meiner Firma für unser Webteam und es ist ziemlich mächtig.

Behandeln Sie mehrere Sprachen

Standardmäßig werden Ihre vorhandenen Skripte automatisiert und die von ihnen erzeugten Artefakte unabhängig von der Sprache verwaltet.

Stellen Sie Artefakte auf Servern bereit (dh stellen Sie den Krieg bereit, wenn alle Komponententests bestanden wurden.)

Die Bereitstellung kann als Schritt in Ihrem Erstellungsprozess hinzugefügt werden. Ich bin mir nicht sicher, ob Sie direkt in der Produktion bereitstellen möchten, aber Sie könnten es sicherlich, wenn das Management dies vorschreibt.

Ich möchte auch etwas, das in ein anständiges Tool zur Codeabdeckung integriert ist.

Sie lassen sich sofort in Clover, Cobertura, Emma, ​​Checkstyle, CodeSonar, Coverity, FindBugs, Fortify, Klocwork, PMD und Sonar integrieren.

Gut aussehende Berichte sind nett, aber nicht unbedingt erforderlich.

Ich bin nicht sicher, welche Berichte verfügbar sind, aber es gibt eine Registerkarte "Berichte" (ich gehe dort nicht hinein :-))

Mehrere Benachrichtigungsmechanismen, wenn etwas schief geht.

Ich weiß, dass es E-Mail (und damit SMS) kann, integriert mit ein paar IM-Diensten.

Ich mache mir keine Sorgen um das Hosting. Ich werde es entweder auf einem lokalen Server oder auf einer Amazon-Instanz ausführen.

Ich habe eine Demo von ihnen gesehen, die eine Cloud-Sitzung aus einem Image mit einem Agenten für die Bereitstellung gestartet hat. Wir führen es auf einer typischen Linux-Box aus, aber ich weiß, dass einige Leute es auf einem VMWare-Server ausführen.

Auch das ist vielleicht ein Kinderspiel, aber gibt es etwas, das auch IPhone-Apps erstellen kann?

Dies würde wahrscheinlich unter den ersten fallen.

corsiKa
quelle