Bamboo Vs. Hudson (aka Jenkins) vs inne systemy CI [zamknięte]

119

Czy ktoś ma doświadczenie z Hudsonem i Bamboo? Jakieś przemyślenia na temat względnych mocnych i słabych stron tych produktów?

W porządku, ponieważ ludzie wciąż wspominają o innych produktach CI, otworzę to dalej. Oto mój ogólny problem. Chcę skonfigurować system CI do nowego projektu. Ten projekt prawdopodobnie będzie zawierał komponenty Java (WAR i JAR), niektóre moduły Pythona, a być może nawet komponent .NET. Dlatego potrzebuję serwera CI, który może:

  1. Obsługa wielu języków,
  2. Wdrażaj artefakty na serwerach (tj. Wdrażaj wojnę, jeśli wszystkie testy jednostkowe przejdą pomyślnie).
  3. Chciałbym też coś zintegrowanego z przyzwoitym narzędziem do pokrycia kodu.
  4. Dobrze wyglądające raporty są ładne, ale nie niezbędne.
  5. Wiele mechanizmów powiadomień, gdy coś pójdzie nie tak.
  6. Nie martwię się o hosting. Uruchomię go na serwerze lokalnym lub na instancji Amazon.
  7. A może to ciasto na niebie, ale czy jest coś, co może również tworzyć aplikacje na iPhone'a?
Karthik Ramachandran
źródło
2
Żeby jeszcze bardziej zamieszać wody, czy zastanawiałeś się nad Team City? Mają wersję bezpłatną (ograniczoną liczbą użytkowników). Używałem go w przeszłości i bardzo podoba mi się zawarte w nim informacje.
Shane Courtrille
Hudson czy Jenkins? ( kohsuke.org/2011/01/11/bye-bye-hudson-hello-jenkins )
Romain Linsolas
2
Wciąż mieszajmy wody :) integrityapp.com Można to wdrożyć w Heroku, dzięki czemu możesz mieć serwer CI za darmo.
Nerian
Nie widziałem TeamCity. I nie zdawałem sobie sprawy, że Oracle zmusiła Hudsona do zostania Jenkinsem. Zmienię pytanie, aby to odzwierciedlić.
Karthik Ramachandran
2
Jest na ten temat wątek tutaj: forums.atlassian.com/message.jspa?messageID=257292121
sal

Odpowiedzi:

50

Zastrzeżenie: pracuję nad Bamboo i dlatego nie zamierzam komentować funkcji innych produktów CI, ponieważ moje doświadczenie z nimi jest ograniczone.

Aby odpowiedzieć na Twoje specyficzne wymagania:

Obsługa wielu języków

Bamboo od razu obsługuje wiele języków. Klienci używają go z Javą, .Net, PHP, JavaScriptem itp. Biorąc to pod uwagę, większość serwerów kompilacji jest wystarczająco ogólna, aby przynajmniej wykonać skrypt, który może rozpocząć proces kompilacji.

Wdrażaj artefakty na serwerach (tj. Wdrażaj wojnę, jeśli wszystkie testy jednostkowe przejdą pomyślnie).

Bamboo 2.7 obsługuje etapy kompilacji, które umożliwiają podzielenie kompilacji na etap testów jednostkowych i etap wdrażania. Tylko jeśli etap testów jednostkowych powiedzie się, kompilacja przejdzie do etapu wdrażania. W Bamboo 3.0 będziemy wspierać współdzielenie artefaktów pomiędzy etapami, co pozwoli ci stworzyć Artefakt (np. Twoją wojnę) w pierwszym etapie i używać tego Artefaktu w kolejnych etapach do testowania i wdrażania.

Chciałbym też coś zintegrowanego z przyzwoitym narzędziem do pokrycia kodu.

Bamboo obsługuje Clover, a także ma dostępną wtyczkę dla Cobertury .

Dobrze wyglądające raporty są ładne, ale nie niezbędne.

Bamboo ma całą masę raportów, które są ładne, ale nie niezbędne :)

Wiele mechanizmów powiadomień, gdy coś pójdzie nie tak.

Bamboo może powiadamiać Cię przez e-mail, RSS, komunikator, wtyczkę IDE lub ładną tablicę, która jest widoczna dla całego zespołu.

Nie martwię się o hosting. Uruchomię go na serwerze lokalnym lub na instancji Amazon.

Z doświadczenia wynika, że ​​hostowanie własnego serwera CI jest generalnie tańsze. Ale jeśli potrzebujesz skalować, Bamboo ułatwia dystrybucję twoich kompilacji do dodatkowych lokalnych agentów lub skalowanie do Amazon za pośrednictwem agentów Elastic.

A może to ciasto na niebie, ale czy jest coś, co może również tworzyć aplikacje na iPhone'a?

Podobnie jak w przypadku odpowiedzi na pierwsze pytanie, większość serwerów CI będzie w stanie w pewien sposób tworzyć aplikacje na iPhone'a. Możliwe, że wymagane jest jednak trochę więcej skryptów.

Cena: Bamboo nie jest darmowy (poza naszą darmową licencją startową ) / libre / open-source, ale otrzymasz kod źródłowy Bamboo, jeśli kupisz licencję komercyjną i pełne wsparcie. W porównaniu z kosztem mocy obliczeniowej i potencjalną konserwacją wymaganą dla serwera CI, koszt licencji Bamboo jest raczej niewielki.

Mam nadzieję że to pomoże.

jens
źródło
15
Struktura cenowa Bamboo jest wadliwa. Nie rozróżnia użytkowników z kompilacjami równoległymi i użytkowników, którzy po prostu potrzebują zdalnych agentów do testowania międzyplatformowego. Jeśli spróbujesz uruchomić mały serwer kompilacji dla Windows, Linux i Mac (może nawet różne wersje każdego z nich), cena szybko skacze do tysięcy dolarów rocznie. Lepszym podejściem byłoby pobieranie opłat za jednoczesne kompilacje.
Gili,
Dużą zaletą Bamboo przeciwko jenkinsowi jest automatyczne łączenie gałęzi, aby zapobiec dryfowaniu między deweloperami w zespołach. Ale niestety obsługują to tylko dla GIT i Mercurial, więc każdy, kto używa SVN lub czegokolwiek innego, nie zadziała. Ale Jenkins ma wtyczkę SVN Merge, która pozwala nam to zrobić.
george_h,
1
@george_h Wtyczka GIT dla Jenkinsa obsługuje teraz automatyczne łączenie gałęzi. Nie jestem pewien, kiedy to zostało wdrożone.
slu
1
To wspaniale. Właściwie użyłem zarówno bambusa, jak i jenkins, a jenkins był zdecydowanie lepszy. W końcu to tylko serwer, na którym działa Ant + Maven.
george_h
40

Nie używałem Bamboo, ale używałem Hudson, Cruise i TFS, a spośród nich Hudson był najlepszy. Jest śmiesznie łatwy w konfiguracji i ma naprawdę fajny interfejs graficzny do konfiguracji projektu. Wspaniałe w Hudsonie jest to, że obsługuje prawie każdy język i funkcję, której możesz potrzebować, zakładając, że ktoś napisał dla niego wtyczkę, którą prawdopodobnie ma.

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

Użyliśmy go do uruchamiania kompilacji .NET, Java i C ++ w określonych odstępach czasu, a także sprawdzania SVN z automatycznymi wiązkami testowymi i było świetnie. Miejsce, w którym ostatnio pracowałem, rozpoczęło rozwój iPhone'a tuż przed wyjazdem i wydaje mi się, że używali do tego również Hudsona.

Dodatkowo to nic nie kosztuje!

Steve Whitfield
źródło
35

Bamboo vs Hudson, na bardzo powierzchownym poziomie, wydaje się sprowadzać do:

  • Bambus: łatwy w użyciu i dobrze wyglądający
  • Jenkins: Szorstki na krawędziach, ale jest znacznie bardziej elastyczny niż bambus

Zarówno Bamboo i Jenkins mają liczne błędy (trzeba będzie napotkasz problemy), ale przynajmniej z Jenkins są o wiele bardziej narażone na obejście dopóki nie zostanie naprawiony. Z Bamboo utkniesz w oczekiwaniu na aktualizację.

Gili
źródło
Domyśliłbym się, że w przypadku Bamboo masz przynajmniej komercyjne wsparcie.
keiki
3
@keiki, tak i nie. Tak, otrzymujesz wsparcie komercyjne, ale kosztuje to dużo pieniędzy (musisz zadać sobie pytanie, czy koszt / korzyść ma sens). Warto zauważyć, że wiele problemów, które napotkasz, jest spowodowanych brakującymi funkcjami. Atlassian dołoży wszelkich starań, aby Ci pomóc, ale pod koniec dnia mają ograniczone zasoby i dodanie żądanych funkcji może zająć lata (w zależności od ich popularności).
Gili
1
+1 za elastyczność. Bamboo jest naprawdę ograniczony dla współczesnego narzędzia, to również dla narzędzia CI, w którym rzeczy nie są wykonywane od zera. Co więcej, Atlassian nie był w stanie nadać priorytetu / poradzić sobie z błędami Bamboo w sposób, w jaki pracowaliśmy z OSS.
Paddy
16

Zastrzeżenie: pracuję z Jenkinsem.

W naszej organizacji (dość dużej, ponad 100 programistów) bardzo przydały się te dwie funkcje:

  1. Wtyczka CAS ze strategią bezpieczeństwa projektu macierzy
  2. Build Pipeline Plugin
  3. Harmonogram wydań LTS.

O twoich pytaniach:

  1. dobrze
  2. WTYCZKA SCP lub WTYCZKA SSH
  3. Używamy FINDBUGS, wtyczki do analizy statycznej, wtyczek do analizy kodu statycznego, wtyczki do skanera zadań
  4. Poprzednio w punkcie 3 + wtyczka Jenkins DocLinks
  5. Używamy poczty e-mail Jenkins Email Extension Plugin, ale obsługuje ona również inne systemy, takie jak rss, twitter Publishing, sms ...
  6. Działamy w hostingu Tomcat lokalnie.
  7. Tak.
Federico Paolantoni
źródło
5

Cóż, do tej pory nie korzystałem z Bamboo, ale jedną różnicą jest to, że Hudson jest oprogramowaniem darmowym / libre / open source.

Kolor brązowofioletowy
źródło
10
downvoted - ta odpowiedź jest prawdziwa, ale banalna (zapewne wie o tym ktoś świadomy obu produktów); OP szuka porównań funkcji.
Jason S
1

Jeśli jesteś gotów za to zapłacić, Anthill zrobi wszystko, na co patrzysz. Używamy go w mojej firmie dla naszego zespołu internetowego i jest dość potężny.

Obsługa wielu języków

Po wyjęciu z pudełka automatyzuje istniejące skrypty i zarządza tworzonymi przez nie artefaktami bez względu na język.

Wdrażaj artefakty na serwerach (tj. Wdrażaj wojnę, jeśli wszystkie testy jednostkowe przejdą pomyślnie).

Wdrożenie można dodać jako krok w procesie kompilacji. Nie jestem pewien, czy chcesz wdrożyć bezpośrednio do produkcji, ale z pewnością możesz, jeśli kierownictwo powie, że musisz.

Chciałbym też coś zintegrowanego z przyzwoitym narzędziem do pokrycia kodu.

Integrują się po wyjęciu z pudełka z Clover, Cobertura, Emma, ​​Checkstyle, CodeSonar, Coverity, FindBugs, Fortify, Klocwork, PMD i Sonar.

Dobrze wyglądające raporty są ładne, ale nie niezbędne.

Nie jestem pewien, jakie raporty są dostępne, ale jest zakładka raportów (nie wchodzę tam :-))

Wiele mechanizmów powiadomień, gdy coś pójdzie nie tak.

Wiem, że może robić e-maile (a tym samym sms), integruje się z kilkoma usługami komunikatorów.

Nie martwię się o hosting. Uruchomię go na serwerze lokalnym lub na instancji Amazon.

Widziałem ich demo uruchamiające sesję chmury z obrazu, wraz z agentem do wdrożenia. Uruchamiamy go na typowym Linuksie, ale wiem, że niektórzy ludzie uruchamiają go na serwerze VMWare.

A może to ciasto na niebie, ale czy jest coś, co może również tworzyć aplikacje na iPhone'a?

Prawdopodobnie należałoby to do pierwszego.

corsiKa
źródło