![]() |
![]() |
|
|
|---|
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)
| Bamboo- Atlassian | Hudson- java.net | AnthillPro- Urbancode | CruiseControl- ThoughtWorks | |
|---|---|---|---|---|
![]() |
![]() |
|
|
|
| Cena | 1200$-8000$ | 0$ | link | 0$ |
| Video prezentacja
|
link | 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
Autor: Dominik Kapusta


