Czym jest JenkinsDlaczego warto korzystać z narzędzia do ciągłej integracji (CI)?
⚡ Inteligentne podsumowanie
Jenkins jest serwerem automatyzacji typu open source, który kompiluje i testuje kod za każdym razem, gdy programista go zatwierdzi, zmieniając ciągłą integrację z nocnego zadania w proces, który działa nieprzerwanie przez cały dzień roboczy.
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, z setkami tysięcy instalacji i rosnącą z dnia na dzień liczbą użytkowników. 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.
Uwaga: rozmieszczanie WAR w Apache Tomcat nadal działa, ale obecne wersje zawierają osadzony kontener serwletów, więc Jenkins Zwykle działa samodzielnie. Linia 2.555.x LTS wymaga Java 21.
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 Continuous Integration Pipeline to potężne narzędzie składające się z zestawu narzędzi przeznaczonych do hostowania, monitorowania, kompilowania i testowania kodu lub zmian w kodzie, takich jak:
- Serwer ciągłej integracji (Jenkins, Bamboo, CruiseControl, TeamCity, i inni)
- Narzędzie kontroli wersji (np. CVS, SVN, GIT, Mercurial, Perforce, ClearCase i inne)
- Narzędzie do kompilacji (Make, ANT, Maven, Ivy, Gradle, i inni)
- Struktura testów automatycznych (Selenium, Appium, TestComplete, UFT, i inni)
W obecnych wersjach te kroki znajdują się w Jenkinsplik zatwierdzony obok kodu. Jenkins Kontroler odczytuje plik i przekazuje każdy etap do agenta, czyli maszyny, która faktycznie wykonuje pracę.
Jenkins History
- 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 współdzielonym repozytorium. Niektórzy programiści kończą swoje zadanie w 25 dni, a inni potrzebują na 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 tworzony i testowany natychmiast po zatwierdzeniu kodu przez programistę. Jenkins będzie kompilować 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 tworzony po każdym zatwierdzeniu przez pojedynczego programistę, ł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.
Later, przyjęli podejście ciągłej integracji, przedstawione poniżej. Oprogramowanie zostało stworzone i przetestowane natychmiast po zatwierdzeniu kodu przez programistę. W przypadku wykrycia błędu, programista może szybko go naprawić.
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, jak pokazuje poniższy menedżer wtyczek.
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.
- Projekt utrzymuje przewidywalny rytm wydań: co dwanaście tygodni wybierana jest nowa baza długoterminowego wsparcia, po czym planowane są wydania poprawek.
- W miarę rozwoju technologii, JenkinsBaza danych wtyczek zawiera obecnie ponad dwa tysiące wtyczek. 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.
- Interfejs użytkownika jest przestarzały i nieprzyjazny użytkownikowi w porównaniu z obecnymi trendami, chociaż ostatnie wersje unowocześniły dużą część projektu ekranu.
- 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.
- Konflikty zależności między wtyczkami pojawiają się, gdy wiele wtyczek jest aktualizowanych w różnym czasie. W związku z tym aktualizacje wtyczek wymagają osobnego okna konserwacyjnego.
Jeśli te kompromisy mają znaczenie dla Twojego zespołu, porównaj Bezcenne Jenkins Narzędzia alternatywne i szersza lista najlepsze narzędzia do ciągłej integracji przed podjęciem decyzji o korzystaniu z serwera hostowanego na własnym serwerze.


