Jenkins Continuous Deployment [z praktycznym przykładem]
Opublikowany: 2020-12-28Wdrożenie Jenkins to przyspieszony proces złożonego zautomatyzowanego tworzenia oprogramowania. Ten artykuł wyjaśnia, w jaki sposób Jenkins integruje wszystkie procesy cyklu życia lub etapy DevOps, takie jak budowanie, dokumentowanie, testowanie, pakowanie, etapowanie, wdrażanie, analiza statyczna i wiele innych, praktykowanych w kilku organizacjach.
Obecnie wiele organizacji stosuje metodykę DevOps w swoich ofertach. W cyklu życia oprogramowania, musisz stale publikować oprogramowanie jako część projektu.
Narzędzia takie jak Jenkins są bardzo popularne ze względu na ich potencjał umożliwiający ciągłą integrację i dostarczanie aplikacji niezależnie od platformy. Jenkins to darmowe i jednoźródłowe narzędzie, które może obsłużyć każdy rodzaj kompilacji we wdrożeniu Jenkinsa , co zostanie omówione w artykule.
Jenkins można zintegrować z wieloma technologiami testowania i wdrażania. W tym artykule opisano, w jaki sposób Jenkins jest używany do ciągłego tworzenia i testowania projektów oprogramowania.
Naucz się online kursu inżynierii oprogramowania z najlepszych światowych uniwersytetów. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.
Dlatego zanim zagłębimy się w sposób działania Jenkinsa, musimy zrozumieć następujące tematy, które są podstawą nauki Jenkinsa:

- Ciągłe wdrażanie
- Ciągłe dostarczanie a ciągłe wdrażanie
- Praktyczny przykład wdrożenia Jenkins
- Korzyści z wdrożenia Jenkins
Przyjrzyjmy się wszystkim po kolei!
Spis treści
Ciągłe wdrażanie
W ciągłym wdrożeniu oprogramowanie jest publikowane na serwerach produkcyjnych w sposób ciągły z automatyzacją. Kod przechodzi etapy, takie jak kompilacja kodu źródłowego, walidacja, przegląd, pakowanie aplikacji oraz wykonywanie testów jednostkowych i testów integracyjnych.
Kod jest następnie wdrażany na serwerach testowych, gdy przeprowadzany jest test akceptacji użytkownika. Oprogramowanie zostanie wdrożone na serwerach produkcyjnych w celu wydania oprogramowania. Przeczytaj o ciągłej integracji z Jenkinsem.
Ciągłe dostarczanie a ciągłe wdrażanie
Ciągłe dostarczanie i ciągłe wdrażanie to dwa kluczowe etapy SDLC, w których ciągłe dostarczanie nie jest wdrażane do produkcji w przypadku jakichkolwiek zmian. Deweloper musi zapewnić, że kod jest zawsze możliwy do wdrożenia i wdrażać go w razie potrzeby.
Kredyt obrazu
Ciągłe wdrażanie wymaga automatycznego wdrożenia każdej zmiany, bez ludzkiego arbitrażu.
Na powyższym schemacie, po zakończeniu etapów ciągłej integracji, zbudowana aplikacja jest automatycznie wdrażana na serwery produkcyjne, co jest niczym innym jak ciągłym wdrażaniem.
Albo, jeśli wymagana jest zgoda człowieka na wdrożenie nowszej wersji w celu zautomatyzowania wszystkiego, realizujemy ciągłą dostawę.
Ze względu na tę podstawową różnicę, istnieje kilka implikacji, które sprawiają, że każdy proces jest odpowiedni dla różnych okoliczności.
Jenkins
Jenkins to narzędzie typu open source, które przyspiesza proces tworzenia oprogramowania poprzez serwer automatyzacji używany do ciągłego tworzenia i testowania projektów oprogramowania, umożliwiając programistom stworzenie środowiska CI/CD. Jest napisany w Javie, dzięki czemu jest naprawdę przenośny.
Jenkins ma tysiące wtyczek i integracji. Dzięki temu nadaje się do dużych projektów wymagających wielu dostosowań. Obsługuje narzędzia kontroli wersji, takie jak Git, Maven, Mercurial i Subversion.
Praktyczny przykład wdrożenia Jenkins
Teraz, gdy dowiedzieliśmy się, jakiego rodzaju narzędziem jest Jenkins i można go zastosować w procesie tworzenia oprogramowania w celu ciągłego wdrażania, zobaczmy teraz, jak działa w środowisku produkcyjnym.
Najpierw Jenkins jest konfigurowany na serwerze, a projekt klienta jest dodawany do kompilacji i testowania. Klient może następnie pobrać aplikację, która przeszła testy. Wdrażanie zasobów projektu w nowej lokalizacji na serwerze może być trudne.

W tym celu załóżmy, że projekt klienta jest skonfigurowany na Jenkins i jest połączony z twoim systemem kontroli wersji.
Krok 1: Tworzenie przedmiotu Jenkins
Z menu głównego wybierz „Nowa pozycja” i nazwij ją. Wyeksportuje pliki z projektu klienta do folderu na serwerze.
Krok 2: Tworzenie akcji po kompilacji
Przejdź do projektu klienta i wybierz konfiguruj. Teraz rozpocznij akcję po kompilacji i wybierz „artefakty archiwalne” z menu rozwijanego. Dodaj typy plików, które mają być archiwizowane i eksportowane.
Następnie dołącz kolejną akcję po kompilacji, „Zbuduj inny projekt” i wprowadź utworzony wcześniej element kompilacji.
Archiwum
Krok 3: Instalacja wtyczki „Kopiuj artefakt”
W trzecim kroku zainstalujesz wtyczkę „Copy Artifact” Jenkinsa.
Przejdź do „Nazwa projektu”, aby skonfigurować i dodać krok kompilacji. Po zainstalowaniu wtyczki Copy Artifact zobaczysz opcję „skopiuj artefakty z innego projektu”. Wyznacz folder do skopiowania artefaktów i ustaw ścieżkę lokalizacji.
Ustaw lokalizację na „var/www/clients/..” . Spowoduje to utworzenie nowego folderu na serwerze. Podaj ścieżkę z adresem HTTP(!).
Zapisywanie projektu
Krok 4: Wykonywanie testów
Po wstępnych etapach nadszedł czas na przetestowanie aplikacji.
W tym celu uruchom kompilację z projektu klienta. Spowoduje to nową kompilację. Sprawdź folder wdrożenia na serwerze. Tutaj zobaczysz wdrożone pliki.
Ale nawet po wykonaniu wszystkich czynności kompilacja nie powiodła się i pojawił się błąd „FileException”.
Czemu?
Możliwe przyczyny to:
- Jenkins nie miał uprawnień do zapisu w folderze i nie może wdrożyć plików.
- Połącz SSH z serwerem.
- Sprawdź uprawnienia do folderu wyjściowego.
- Dowiesz się, że stanęliśmy przed problemem.
Aby rozwiązać ten problem, wykonaj następujące czynności:
- Dodaj Jenkinsa do grupy, tutaj, grupy „www-data”.
- Zmiana własności folderu wyjściowego na grupę „www-data” za pomocą polecenia sudo chown – R : klienci „www – data”.
- Zezwól na dostęp do zapisu w folderze za pomocą polecenia sudo chmod .
- Uruchom ponownie serwer i zobacz wdrożoną aplikację
Jakie korzyści oferuje Jenkins?
- Jenkins to narzędzie typu open source, które zapewnia doskonałe wsparcie społeczności.
- Jenkins jest stosunkowo łatwy w instalacji.
- Jenkins ma ponad 1000 wtyczek. Jeśli wtyczka nie jest dostępna, możesz ją łatwo zakodować.
- Jenkins jest bezpłatny.
- Jenkins jest zbudowany w Javie; stąd przenośny na wszystkie główne platformy.
Przeczytaj także: Pomysły i tematy projektów Jenkins

Ostatnie słowa
Jenkins to solidne narzędzie do automatyzacji napisane w języku Java, które jest szeroko stosowane w ciągłej integracji. Dzięki Jenkins łatwiej jest budować i testować projekty oprogramowania w sposób ciągły z tym, co zostało napisane. Jest to najlepsze narzędzie do dostarczania oprogramowania zawsze dzięki integracji z dużą liczbą technologii testowania i wdrażania.
Tworzenie oprogramowania do nauki – DevOps z upGrad
upGrad oferuje Executive PG Program in Software Development – Specjalizacja w DevOps, w której nauczysz się dostarczać aplikacje i usługi z bardzo dużą prędkością w organizacji. Kadra upGrad nauczy Cię wszystkich tajników DevOps i nauczy Cię, dlaczego nauka tego będzie dla Ciebie opłacalną karierą.
UpGrad's PG Diploma in Software Development Specialization w programie DevOps Najważniejsze informacje:
Ten przedłużony 12-miesięczny kurs online oferuje następujące funkcje:
- Wiedza sesje online z wykładami na żywo
- Dostęp do wartościowych treści w Data Science i Machine Learning za darmo
- Praca nad 7+ projektami i zadaniami na żywo
- Nauka dziesięciu języków programowania i narzędzi
- Gwarantowana gwarancja miejsca docelowego
- Wsparcie kariery 360° z pomocą w pracy