Czym jest JenkinsDlaczego warto korzystać z narzędzia do ciągłej integracji (CI)?

Czym jest Jenkins?

Jenkins to serwer ciągłej integracji typu open source napisany w Java do organizowania łańcucha działań w celu osiągnięcia procesu Ciągłej Integracji w sposób zautomatyzowany. Jenkins wspiera cały cykl życia oprogramowania, począwszy od tworzenia, testowania, dokumentowania oprogramowania, wdrażania i innych etapów cyklu życia oprogramowania.

Jenkins to szeroko stosowana aplikacja na całym świecie, której liczba instalacji wynosi około 300 tys. i która z dnia na dzień rośnie. Korzystając z Jenkinsfirmy produkujące oprogramowanie mogą przyspieszyć proces rozwoju oprogramowania, ponieważ Jenkins może zautomatyzować proces kompilacji i testowania w szybkim tempie.

Jest to aplikacja oparta na serwerze i wymaga serwera WWW, takiego jak Apache Tomcat. Powód Jenkins Oprogramowanie stało się tak popularne dzięki monitorowaniu powtarzających się zadań, które pojawiają się podczas rozwoju projektu. Na przykład, jeśli Twój zespół zajmuje się rozwojemping projekt, Jenkins będzie na bieżąco testować kompilacje Twojego projektu i wskaże Ci błędy na wczesnych etapach rozwoju.

Czym jest ciągła integracja?

Ciągła integracja to proces wielokrotnego integrowania zmian w kodzie dokonanych przez wielu programistów w jednym projekcie. Oprogramowanie jest testowane natychmiast po zatwierdzeniu kodu. Przy każdym zatwierdzeniu kodu kod jest budowany i testowany. Jeśli test zakończy się pomyślnie, kompilacja zostanie przetestowana pod kątem wdrożenia. Jeśli wdrożenie zakończy się pomyślnie, kod zostanie przekazany do środowiska produkcyjnego.

To zatwierdzanie, budowanie, testowanie i wdrażanie jest procesem ciągłym i stąd nazwa ciągła integracja/wdrożenie.

W jaki sposób Jenkins działa?

Jenkins jest aplikacją serwerową i wymaga serwera WWW, takiego jak Apache Tomcat, aby działać na różnych platformach, takich jak Windows, Linux, macOS, Unix itp. Aby użyć Jenkins, musisz utworzyć potoki, czyli serię kroków, które Jenkins serwer zajmie. Jenkins Pipeline ciągłej integracji to potężne narzędzie składające się z zestawu narzędzi zaprojektowanych do: gospodarz, monitor, skompilować oraz test kodu lub zmian w kodzie, takich jak:

  • Serwer ciągłej integracji (Jenkins, Bamboo, CruiseControl, TeamCity, i inni)
  • Narzędzie kontroli źródła (np. CVS, SVN, GIT, Mercurial, Perforce, ClearCase i inne)
  • Narzędzie do budowania (Make, ANT, Maven, Ivy, Gradle, i inni)
  • Ramy testów automatycznych (Selenium, Appium, TestComplete, UFT, i inni)

Historia Jenkina

  • Kohsuke Kawaguchi, a Java programista pracujący w SUN Microsystems był zmęczony budowaniem kodu i powtarzalnym naprawianiem błędów. W 2004 roku stworzył serwer automatyzacji o nazwie Hudson, który automatyzuje zadania kompilacji i testowania.
  • W 2011, Oracle właściciel Sun Microsystems miał spór ze społecznością open source Hudson, więc oddzielił Hudson i zmienił jego nazwę na Jenkins.
  • Zarówno Hudson, jak i Jenkins nadal działał niezależnie. Jednak w krótkim czasie Jenkins pozyskał wielu projektów i współpracowników, podczas gdy Hudson pozostał z zaledwie 32 projektami. Z czasem Jenkins stał się bardziej popularny i Hudson nie jest już utrzymywany.

Dlaczego warto stosować ciągłą integrację z Jenkins?

Niektórzy mogą myśleć, że staromodny sposób rozwojuping Oprogramowanie to lepszy sposób. Poznajmy zalety CI z Jenkins z następującym przykładem

Wyobraźmy sobie, że około 10 programistów pracuje nad aplikacją udostępnione repozytorium. Niektórzy programiści wykonują swoje zadanie w 25 dni, podczas gdy innym zajmuje to 30 dni.

Przed Jenkins Po Jenkins
Gdy wszyscy programiści wykonali przydzielone im zadania kodowania, zwykli zatwierdzać swój kod w tym samym czasie. Later, Kompilacja została przetestowana i wdrożona.

Code zatwierdzenie zostało zbudowane, a cykl testowy był bardzo rzadki, a pojedyncza kompilacja została wykonana po wielu dniach.

Kod jest budowany i testowany natychmiast po zatwierdzeniu kodu przez programistę. Jenkin będzie budować i testować kod wiele razy w ciągu dnia

Jeśli kompilacja zakończy się sukcesem, to Jenkins wdroży kod źródłowy na serwerze testowym i powiadomi zespół wdrażający.

Jeśli kompilacja się nie powiedzie, to Jenkins powiadomi zespół programistów o błędach.

Ponieważ kod został zbudowany w całości na raz, niektórzy programiści musieli poczekać, aż inni programiści zakończą kodowanie, aby sprawdzić swoją kompilację Kod jest budowany natychmiast po zatwierdzeniu któregokolwiek z Deweloperów.
Wyizolowanie, wykrycie i naprawienie błędów w przypadku wielu zatwierdzeń nie jest łatwym zadaniem. Ponieważ kod jest budowany po każdym zatwierdzeniu pojedynczego programisty, łatwo jest wykryć, czyj kod spowodował niepowodzenie kompilacji
Code buduj i proces testowy są całkowicie ręczne, więc ryzyko niepowodzenia jest duże. Zautomatyzowany proces kompilacji i testowania oszczędza czas i redukuje defekty.
Kod zostaje wdrożony po naprawieniu wszystkich błędów i przetestowaniu ich. Kod jest wdrażany po każdym pomyślnym skompilowaniu i teście.
Cykl rozwoju jest powolny Cykl rozwoju jest szybki. Nowe funkcje są łatwiej dostępne dla użytkowników. Zwiększa zyski.

Studium przypadku ciągłej integracji ze świata rzeczywistego

Jestem pewien, że wszyscy wiecie o starym telefonie Nokia. Nokia wdrażała procedurę zwaną kompilacją nocną. Po wielu zatwierdzeniach od różnych programistów w ciągu dnia, oprogramowanie budowane było każdej nocy. Ponieważ oprogramowanie było budowane tylko raz dziennie, izolowanie, identyfikacja i naprawianie błędów w dużej bazie kodu jest ogromnym wyzwaniem.

Laterprzyjęli podejście Ciągłej Integracji. Oprogramowanie zostało zbudowane i przetestowane zaraz po zatwierdzeniu kodu przez programistę. W przypadku wykrycia jakiegokolwiek błędu odpowiedni programista może szybko naprawić usterkę.

Studium przypadku ciągłej integracji ze świata rzeczywistego

Jenkins Wtyczki

Domyślnie Jenkins zawiera ograniczony zestaw funkcji. Jeśli chcesz zintegrować swój Jenkins Instalacja z narzędziami kontroli wersji, takimi jak Git, wymaga instalacji wtyczek powiązanych z Gitem. W rzeczywistości, aby zintegrować system z narzędziami takimi jak Maven, Amazon EC2, musisz zainstalować odpowiednie wtyczki w swoim Jenkins.

Jenkins Wtyczki
Integracja wtyczek w Jenkins

Zalety użytkowania Jenkins

  • Jenkins Zarządzana jest przez społeczność, która jest bardzo otwarta. Co miesiąc odbywają się spotkania publiczne i zbierane są opinie publiczne na temat rozwoju Jenkins projekt.
  • Jak dotąd zamknięto około 280 zgłoszeń, a projekt publikuje stabilną wersję co trzy miesiące.
  • W miarę rozwoju technologii, Jenkins. Dotychczas Jenkins ma około 320 wtyczek opublikowanych w swojej bazie danych. Dzięki wtyczkom, Jenkins staje się jeszcze potężniejszy i bogatszy w funkcje.
  • Jenkins narzędzie obsługuje również architekturę opartą na chmurze, dzięki czemu można wdrożyć Jenkins na platformach opartych na chmurze.
  • Powód dlaczego Jenkins stał się popularny, ponieważ został stworzony przez programistę dla programistów.

Wady korzystania Jenkins

Chociaż Jenkins jest bardzo potężnym narzędziem, ale ma też swoje wady.

  • Jego interfejs jest przestarzały i niezbyt przyjazny dla użytkownika w porównaniu z obecnymi trendami w interfejsie użytkownika.
  • Chociaż Jenkins jest lubiany przez wielu programistów, ale jego utrzymanie nie jest takie łatwe, ponieważ Jenkins działa na serwerze i wymaga pewnych umiejętności administratora serwera, aby monitorować jego aktywność.
  • Jednym z powodów, dla których wiele osób nie wdraża Jenkins jest to spowodowane trudnością w instalacji i konfiguracji Jenkins.
  • Ciągłe integracje regularnie się psują z powodu drobnych zmian ustawień. Ciągła integracja zostanie wstrzymana i dlatego wymaga uwagi programisty.

Wniosek

  • W przypadku ciągłej integracji po zatwierdzeniu kodu oprogramowanie jest natychmiast budowane i testowane
  • Jenkins służy do organizowania łańcucha działań na rzecz ciągłej integracji w projekcie oprogramowania
  • Przed Jenkins gdy wszyscy programiści ukończyli przypisane im zadania kodowania, zatwierdzali kod w tym samym czasie. Later, Kompilacja została przetestowana i wdrożona.
  • Po Jenkins Kod jest kompilowany i testowany natychmiast po zatwierdzeniu kodu przez programistę. Jenkin kompiluje i testuje kod wiele razy w ciągu dnia.
  • Domyślnie Jenkins zawiera ograniczony zestaw funkcji. Jeśli chcesz zintegrować swój Jenkins Jeśli instalujesz system z narzędziami kontroli wersji, takimi jak Git, musisz zainstalować wtyczki związane z Gitem. Sprawdź również Bezcenne Jenkins Narzędzia alternatywne
  • Największe zalety Jenkins polega na tym, że jest zarządzana przez społeczność, która organizuje spotkania publiczne i zbiera opinie od społeczeństwa na temat rozwoju Jenkins projektowanie
  • Największym oszustwem Jenkins Jego interfejs jest przestarzały i nieprzyjazny użytkownikowi w porównaniu z obecnymi trendami w interfejsach użytkownika. Jeśli rozważasz inne opcje, które mogłyby zaoferować bardziej nowoczesne doświadczenie użytkownika, warto rozważyć… najlepsze narzędzia do ciągłej integracji dostępny.

Podsumuj ten post następująco: