Skip to content

6 rzeczy, których dowiedziałem się o narzędziach CI/CD

Niedawno opublikowałem zestawienie 24 najlepszych narzędzi CI/CD. Podczas tworzenia tego zestawienia dowiedziałem się kilku ciekawych informacji, którymi chcę się z Wami podzielić. Niektóre z tych informacji są widoczne wprost w tabeli, a niektóre z nich zdobyłem podczas zbierania danych do zestawienia. No to zaczynamy!

1. Nie ma czegoś takiego jak najlepsze narzędzie CI/CD

Tworząc zestawienie narzędzi CI/CD dość szybko doszedłem do wniosku, że nie da się wybrać najlepszego narzędzia. Wynika to z tego, że czynników, które mogą wpływać na wybór jest zbyt dużo. Do tego bardzo często są one rozłączne.

Jak przykład mogę podać tutaj platformę, na której można uruchomić dane narzędzie. Dzisiaj większość narzędzi można już uruchamiać w ramach chmury. Część jednak nadal działa tylko on-premise. I dla jednych konieczność uruchomienia narzędzia na własnych serwerach będzie wadą a dla innych już niekoniecznie.

Inną sprawą jest też kwestia kosztów. W kilku przypadkach narzędzia udostępniane są jako open source. To powoduje, że dane narzędzie jest darmowe. Ale też zazwyczaj za tym kryje się konieczność utrzymania danego narzędzia. I znowu część woli zapłacić za narzędzie po to, aby nie martwić się bieżącym utrzymaniem. A inni zaś wolą mieć wszystko pod kontrolą i nie przejmują się tym faktem.

2. Pomimo tego, Jenkins jest nadal królem

Jenkins pomimo swojego wieku jest nadal najczęściej używanym narzędziem CI/CD na świecie. Najlepszym potwierdzeniem tego będzie poniższa grafika pokazująca ilość wyszukiwań w Google dla najpopularniejszych narzędzi CI/CD.

Porównanie narzędzi CI/CD.
Porównanie narzędzi CI/CD.

Potwierdzenie tej popularności można też odnaleźć na wielu stronach konkurencyjnych narzędzi. Na wielu z nich możemy odnaleźć porównania danego narzędzia do konkurencji. I tutaj praktycznie zawsze znajdziemy Jenkinsa jako głównego oponenta.

Myślę, że główną przyczyną tej popularności jest fakt, że narzędzie jest bardzo silnie wspierane przez rzeszę wolontariuszy. W wyniku tego to narzędzie posiada największą liczbę rozszerzeń i integracji.

Natomiast trudno tak naprawdę obiektywnie stwierdzić, że Jenkins jest najlepszym narzędziem. Samo narzędzie rozwijane jest już kilkanaście lat. W związku z tym Jenkins tak już się rozrósł, że trudno jest go na bieżąco utrzymywać. Dodatkowo przed rozpoczęciem pracy należy zainstalować od kilkunastu lub kilkadziesiąt wtyczek, które powodują, że utrzymanie jest jeszcze trudniejsze.

Ponadto od czasu utworzenia powstało wiele nowych narzędzi wprowadzających nowe podejście w narzędziach CI/CD. Jenkins przez swój wiek nie jest już w stanie szybko się dostosowywać do obecnych na rynku trendach takich jak konfiguracja pipeline’ów za plików YAML.

3. Narzędzia Open source są nadal popularne

Open Source
Open Source

Połowa narzędzi w zestawieniu posiadają otwarte źródła. To powoduje z jednej strony szerokie wsparcie społeczności. A z drugiej strony oznacza też, że narzędzie jest darmowe. W efekcie takie narzędzia są popularne wśród małych i średnich zespołach, które dopiero zaczynają swoją przygodę z CI/CD.

4. Standardy

W branży IT istnieje wiele szeroko stosowanych standardów, których istnienie można potwierdzić za pomocą analizy narzędzi CI/CD. Wśród tych standardów można wymienić:

  • Git – jest to najpopularniejszy system kontroli wersji. Jego hegemonia jest tak silna, że są narzędzia, które wspierają wyłącznie Gita.
  • Chmury – prawie wszystkie narzędzia z zestawienia można uruchomić w ramach chmury. To pokazuje z drugiej strony, że rozwiązania on-premise są coraz mniej popularne.
  • Docker – wszystkie narzędzia wspierają uruchamianie swoich procesów w ramach kontenerów Docker.
  • Kubernetes – większość narzędzi wspiera możliwość instalacji lub uruchamiania agentów w ramach klastrów Kubernetes.
  • Procesy (pipeline) jako kod – wszystkie narzędzia też wspierają definicję procesów (pipeline) jako kod. Jest to dzisiaj podstawa prawidłowego stosowania podejścia CI/CD w projektach.
  • Wsparcie dla iOS/macOS – zdecydowana większość narzędzi wspiera również systemy operacyjne od Apple. To pokazuje, że programiści pracujący w tych środowiskach są zauważani przez producentów tych narzędzi

5. Dobra dokumentacja jest bardzo ważna

Podczas szukania danych potrzebnych do zestawienia wielokrotnie spotkałem się z sytuacją, w której odnalezienie podstawowych informacji było bardzo trudne. Wynikało to z tego, że dokumentacja dla narzędzia była zbyt skąpa lub też niedokładna. Dlatego też odnalezienie takiej podstawowej informacji jak obsługiwane systemy kontroli wersji było często niemożliwe. Myślę, że jest to spowodowane tym, że w wielu przypadkach Git jest domyślnym i jedynym systemem obsługiwanym przez narzędzia.

W takich sytuacja wyszukiwarka Google była niezbędna do odnalezienia takich informacji.

6. A marketing jest jeszcze ważniejszy

Marketing
Marketing

Szukając i porównując wiele narzędzi starałem się znaleźć cechy, które je wyróżniają. Niestety często było to nie możliwe. Jest to wynikiem tego, że często wskazywane cechy nie były tak naprawdę unikalne. Na wielu stron wymienia się informację, że dane narzędzie jest szybkie, proste w użyciu albo wspiera integrację z GitHubem. Moim zdaniem wyróżnienie się na tle konkurencji jest konieczne do tego aby zdobyć użytkowników.

Dobrym przykładem oprogramowania z unikalnymi cechami może być Codemagic. Jest to narzędzie, które skupia się na wspieraniu tworzenia i testowania oprogramowania dla systemów mobilnych. Jest to bardzo rzadko spotykane więc te narzędzie znalazło swoją niszę.

Published inCI/CD

Be First to Comment

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *