Porównanie narzędzi Continuous Integration

post_img

bamboo2 hudson1 anthillpro cc

Idea Continuous Integration jest odpowiedzią na ciągle rosnące koszty integracji systemów. Jest praktyką wytwarzania oprogramowania, która zakłada ciągły proces budowania i instalacji projektu. Pozwala to na minimalizację kosztów, związanych z wdrożeniem gotowego produktu.

W naszym artykule dowiesz się, co wyróżnia alternatywne narzędzia Continuous Integration oraz które z nich najlepiej wybrać.

Wstęp

CI służy do wspomagania pracy programistów poprzez szereg narzędzi sprzężonych i zebranych w jednym miejscu. Narzędzie CI kompiluje kod, tworzy build-a (produkt), uruchamia serwer aplikacji (jeżeli jest to konieczne), wykonuje deploy, testy automatyczne oraz szereg statycznych analiz kodu (PMD, Findbugs, Checkstyle). Jeżeli którykolwiek z etapów nie powiedzie się, narzędzie CI automatycznie wysyła maila do osób zaangażowanych w dany projekt. Build’y są uruchamiane po wykryciu przez narzędzie CI zmian w repozytorium kodu. Pozwala to na utrzymywanie kodu który w dowolnej chwili można pobrać, skompilować i uruchomić.

O Continuous Integration można poczytać więcej na stronie Martina Fowlera, guru tej idei : http://martinfowler.com/articles/continuousIntegration.html.

Tabela porównawcza

(oceny podane są w skali 1-5)

BambooAtlassian Hudsonjava.net AnthillProUrbancode CruiseControlThoughtWorks
bamboo2 hudson1 anthillpro cc
Cena 1200$-8000$ 0$ link 0$
Video prezentacja

link

raporty!

brak link brak
Funkcjonalność link link link link
Konfiguracja – interfejs

Web Web Web XML
Obsługa zależności projektów (kompilacja jednego wywołuje kompilację innych)

Łatwość użycia
Raporty graficzne
Przeglądanie źródeł projektu poprzez przeglądarkę

Kompilatory
Ant
Nant
Maven
Make
MsBuild
Visual Studio
Integracja
Confluence
Jira
Mantis
Selenium – raporty
LDAP – email
Fisheye
Code coverage
Clover
Cobertura
EMMA
QA
FindBugs
PMD
Checkstyle
Pluginy
Listy lista lista lista

Link do większej tabeli porównawczej

Opinie użytkowników

Choosing a Continuous Integration Server

Understanding the alternatives to CruiseControl

Podsumowanie

Biorąc pod uwagę potrzeby i możliwości zespołu wytwarzania oprogramowania, najlepszym narzędziem Continuous Integration wydaje się być Atlassian Bamboo. Za wybraniem tego narzędzia przemawiają następujące cechy:

  • Raporty graficzne – różnego rodzaju statystyki, pozwalające na łatwe określenie słabych punktów projektu. Przedstawianie historii wyników poszczególnych testów na przestrzeni wielu buildów. Raportowanie czasu potrzebnego na naprawienie nie działającego test case’a. Raporty zespołowe z podziałem na poszczególnych developerów (aktywność programisty, kto najczęściej powodował błędy w projekcie, itp).  Ta cecha jest jedną z najmocniejszych stron Bamboo w porównaniu z innymi narzędziami.
  • Łatwość użycia – środowisko graficzne, brak XMLi konfiguracyjnych. Bardzo intuicyjny interfejs, nie wymagający dodatkowego szkolenia programistów. Za tym idzie również łatwość utrzymania i dodawania nowych projektów.
  • Przejrzystość – w odróżnieniu od innych tego typu narzędzi, Bamboo prezentuje najistotniejsze informacje w sposób wyjątkowo klarowny.
  • Wsparcie pracy zespołowej – Bamboo umożliwia dostęp do statystyk wskazujących produktywność członków zespołu. Wspiera też odpowiedzialność za utrzymanie jakości produktu, pokazując kto przyczynia się do defektów w testach, a kto je naprawia.
  • Distributed Builds – podział serwera buildującego na kilka równoległych maszyn w celu zwiększenia wydajności procesów buildujących.
  • Integracja z JIRĄ – nieudany build powoduje automatyczne utworzenie odpowiadającego mu buga. Z drugiej strony jest możliwość grupowania spraw z Jiry względem konkretnych buildów.
  • Komentowanie buildów – możliwość dodawania komentarzy do różnych wersji.

W przypadku wdrożenia Bamboo w dużej firmie, polecana jest wersja Professional. Wiąże się to z potrzebą rozmieszczenia agentów zdalnych w różnych środowiskach (Windows, Linux) w celu przeprowadzania buildów różnych produktów (.NET, Java). Pula 10 agentów zdalnych daje również możliwość przydzielenia jednego agenta na zespół programistów, dzięki czemu optymalizuje się proces wytwórczy (brak oczekiwania w kolejce na build). Poza tym ewentualna awaria jednego z agentów nie przerywa pracy innych zespołów.

P. S. Pierwsza strona, na jaką natrafiłem, poszukując porównania Bamboo (bambus) i CruiseControl (mechanizm utrzymywania stałej prędkości) 🙂

http://tropical-treehouse.blogspot.com/2007/05/bamboo-cruise-control.html

* obrazki zostały pobrane ze stron producentów ww. produktów

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *