9 interesujących pomysłów i tematów projektów Jenkins [dla początkujących i doświadczonych]

Opublikowany: 2020-09-10

Jenkins to narzędzie typu open source popularne wśród profesjonalistów DevOps. Ułatwia ciągłą integrację i jest zbudowany w Javie. Jeśli uczysz się o DevOps i automatyzacji, powinieneś wiedzieć o Jenkins, ponieważ jest to jedno z najbardziej znanych narzędzi DevOps dla zespołów. Zespoły DevOps używają tego narzędzia w całym cyklu rozwoju oprogramowania.

Najlepszym sposobem na poznanie narzędzia takiego jak Jenkins jest praca nad jego projektami. Dlatego w tym artykule omówimy nasze najlepsze pomysły na projekty Jenkins. Nasze projekty są dla różnych poziomów zaawansowania, dzięki czemu możesz wybierać według swoich zainteresowań i doświadczenia. Zaczynajmy:

Spis treści

Nasze najlepsze pomysły na projekty Jenkins

Warunki wstępne

Zwróć uwagę, że zanim zaczniesz pracować nad którymkolwiek z poniższych projektów Jenkinsa, powinieneś mieć wystarczającą wiedzę o Javie. Jenkins jest oparty na Javie, dlatego powinieneś znać jego składnię i implementacje. W przeciwnym razie będziesz miał trudności z ukończeniem niektórych projektów, które omówiliśmy poniżej. Niektóre projekty wymagają dodatkowych umiejętności.

1. Błękitny ocean

Jest to projekt, o którym powinieneś się dowiedzieć pracując z Jenkinsem. Blue Ocean umożliwia użytkownikom tworzenie, diagnozowanie i wizualizację potoków CD (ciągłego dostarczania) za pomocą grafiki. Upraszcza korzystanie z Jenkinsa, oferując unikalny i łatwy w użyciu interfejs graficzny. Niezależnie od tego, czy dopiero zaczynasz korzystać z potoków ciągłego dostarczania, czy masz pewne doświadczenie, nauczysz się tego stosunkowo łatwo.

Blue Ocean stał się integralną częścią Jenkins od momentu jego pojawienia się i dlatego musisz poznać jego działanie. Poznanie Blue Ocean zapewni, że wiesz, jak działa Jenkins i jak możesz go używać do ciągłej dostawy. Jego funkcje wizualizacji umożliwiają reprezentowanie potoków w taki sposób, aby można je było wyświetlać również użytkownikom nietechnicznym. Prosta reprezentacja ułatwia również diagnozę problemów. Korzystając z wizualizacji, możesz łatwo znaleźć błędy i szybko je naprawić.

Podsumowując, poznanie Blue Ocean przyniosłoby wiele korzyści w zapoznaniu się z Jenkinsem.

2. Infrastruktura Jenkinsa

Jenkins to technologia open source. Oznacza to, że jego kod jest dostępny dla wszystkich otwarcie. Jeśli jesteś doświadczonym programistą i chcesz pochwalić się swoją wiedzą, możesz wnieść wkład w jej infrastrukturę. Świetnie wyglądałoby to w twoim CV i pomagało ci dużo dowiedzieć się o zadaniach grupowych. Dowiesz się również, jak technologie open-source stają się lepsze, pomagając Jenkinsowi stać się lepszym.

Istnieje wiele sposobów wniesienia wkładu do infrastruktury Jenkins. Możesz przyczynić się do ich strony internetowej lub podstawowej infrastruktury technologii. Aby wnieść wkład w stronę, będziesz musiał użyć HTML, podczas gdy będziesz musiał zaimplementować Rubiego do wkładu infrastruktury. Ma dobrze prosperującą społeczność programistów i współpracowników, którzy chętnie pomogą w przypadku napotkania jakichkolwiek problemów. Możesz przejść tutaj, aby dowiedzieć się więcej o infrastrukturze Jenkins .

3. Projekt zdalny Jenkins

To doskonały pomysł na projekt dla studentów i pasjonatów networkingu. Pozwoliłoby to poznać aplikacje sieciowe Jenkinsa i zobaczyć, jak można ulepszyć ich implementację. Jenkins Remoting to archiwum i biblioteka do implementacji warstwy komunikacyjnej. Posiada protokoły TCP, strumieniowe przesyłanie danych, wywołania procedur itp. Ponieważ jest oparty na protokołach TCP, awaria tego samego powoduje również awarię połączenia agenta. Protokoły powodują utrudnienia, gdy komunikuje się za ich pośrednictwem wielu agentów. Te wady wpływają na skalę i stabilność Jenkinsa.

Więc w tym projekcie możesz ulepszyć Jenkins Remoting. Możesz to zrobić, czyniąc go kompatybilnym z technologią magistrali komunikatów/kolejek (ActiveMQ lub RabbitMQ). Może działać jako warstwa odporna na błędy dla Jenkinsa. Aby ukończyć ten projekt, powinieneś znać podstawy sieci, kolejek wiadomości i Javy.

4. Popraw Jenkins ATH

Jenkins ATH (Acceptance Test Harness) to narzędzie do testowania bibliotek DSL i plików Jenkinsfile przed ich wdrożeniem. Jednak stara wersja tego narzędzia ma kilka wad:

  • Musi załadować kompletną instancję dla każdej metody testowej, więc działa stosunkowo wolno
  • Rzeczywiste środowiska zwykle wymagają dokładnego zestawu wtyczek i ich wersji

Możesz ulepszyć Jenkins ATH, naprawiając oba te problemy. Jeśli nie pracowałeś wcześniej nad żadnymi projektami Jenkinsa, możesz najpierw zacząć naprawiać jeden z tych problemów, a następnie przejść do rozwiązywania następnego. Aby ukończyć ten projekt, powinieneś znać Docker i Selenium, a także Javę.

5. Wtyczka dla kroku Odrzuć kompilacje

W tym projekcie musisz stworzyć wtyczkę, która da użytkownikom możliwość bardziej odpowiedniego zarządzania polityką przechowywania danych. Wtyczka powinna umożliwiać użytkownikom implementację zasad tworzenia artefaktów, historii i obszarów roboczych. Zwykle administratorzy zadania muszą poradzić sobie z tym problemem, ale bardziej odpowiednie byłoby zapewnienie współtwórcom projektu możliwości wdrożenia ich polityki przechowywania danych. Twoja wtyczka powinna umożliwiać użytkownikom tworzenie i definiowanie zasad przechowywania danych za pomocą kroku budowania potoku.

Możesz ulepszyć funkcję Odrzuć stare kompilacje i dostosować ją do kodu. Możesz skupić się na oferowaniu większej liczby funkcji niż obecne oferty obiektów Odrzuć stare kompilacje. Działanie Twojej wtyczki może być podzielone na dwie sekcje. Najpierw wybiera kompilacje, które musi odrzucić zgodnie z historią konkretnego zadania. Następnie powinien odrzucić kompilacje, które dodał do swojej listy.

To jeden z najbardziej interesujących projektów Jenkinsa i wiele się nauczysz, wykonując go. Możesz użyć wtyczki Run Selector jako podstawy swojego projektu.

6. Pokrycie kodu

Możesz zbudować wtyczkę, która wykonuje pokrycie kodu. Chociaż jest to jeden z najczęstszych pomysłów na projekty Jenkins, możesz pójść o krok dalej, tworząc unikalne i wydajne narzędzie do pokrywania kodu. Na przykład możesz połączyć wiele narzędzi do pokrywania kodu w jedno i uczynić swoją wtyczkę bardziej wszechstronną i praktyczną. Jeśli jesteś początkującym, możesz zbudować tylko prostą wtyczkę pokrywającą kod. Z drugiej strony, jeśli jesteś doświadczonym programistą Jenkins, możesz uczynić projekt większym wyzwaniem, podążając za ideą, którą tutaj podzieliliśmy, tj. Łącząc różne wtyczki w jedną.

Oprócz Javy będziesz musiał zaimplementować w tym projekcie HTML i CSS. Pomogą Ci ulepszyć i uatrakcyjnić konstrukcję i wygląd Twojego narzędzia.

7. Narzędzia EDA

Narzędzia Electronic Design Automation (w skrócie EDA) są dość popularne wśród inżynierów ze względu na różne zalety. Możesz zbudować wtyczkę, która integruje jedno narzędzie EDA z Jenkinsem, zwiększając jednocześnie wydajność obu. Integracja narzędzia EDA z Jenkinsem pozwoli użytkownikom wykonywać wiele zadań, których wcześniej nie byliby w stanie wykonać. Na przykład mogą publikować raporty czasowe, używać innych wtyczek Jenkins zgodnie z ich wymaganiami, uruchamiać zadania Pipeline z krokami itp.

Na rynku dostępnych jest wiele narzędzi EDA o otwartym kodzie źródłowym. Możesz wybrać jedno z tych narzędzi typu open source (FuseSoC, icetools, Yosys itp.) lub wybrać inne sposoby, które Ci się podobają. Jeśli jesteś początkujący, możesz zacząć od jednego narzędzia EDA i zintegrować je z Jenkinsem. Z drugiej strony możesz utrudnić to zadanie, integrując różne narzędzia EDA z różnymi wtyczkami Jenkins. To doskonały projekt do nauki zastosowań Jenkinsa w dziedzinie inżynierii.

8. Zewnętrzna pamięć masowa na odcisk palca Jenkinsa

Jenkins przechowuje artefakty, poświadczenia, historię ich użytkowania i inne istotne dane za pomocą mechanizmu odcisków palców. Silnik posiada bazę danych XML z różnymi WebUI ułatwiającymi jego działanie. Możesz utworzyć wtyczkę Jenkins, która umożliwia aparatowi Jenkins Fingerprinting przechowywanie danych z zewnętrznej pamięci masowej.

Wiele organizacji może być zmuszonych do wyeksportowania swoich danych do innego magazynu z różnych powodów (np. mała ilość miejsca w silniku). Twoje rozwiązanie pozwoliłoby użytkownikom wyeksportować swoje dane z silnika i wykorzystać je do innych celów. Powinieneś mieć pewne doświadczenie w pracy nad projektami Jenkins, zanim zaczniesz pracować nad tym.

Aby wykonać to zadanie, musisz użyć JavaScript, REST API i Java. Powinieneś także zapoznać się z bazami danych i ich działaniem, tak jakbyś pracował z nimi w tym projekcie.

9. Konwerter zadań dla Jenkinsa

Jenkins to narzędzie do ciągłego dostarczania, dlatego koncentruje się na rurociągach pod kątem wydajności. Jednak wszyscy wiemy, że wiele miejsc pracy jest freestyle'owych, a nie opartych na Pipeline. Możesz zbudować narzędzie dla Jenkinsa, które konwertuje zadania freestyle na zadania potoku. Urządzenie musiałoby migrować dane zadania typu freestyle do swojej bazy danych i zorganizować je w zadanie Pipeline.

Jako początkujący możesz zachować prostotę projektu, tworząc proste narzędzie do migracji i konwersji. Z drugiej strony możesz uczynić go trudniejszym, umożliwiając migrację wielu zadań freestyle i przekształcenie ich w jedno zadanie Pipeline.

Twoje narzędzie miałoby dwie sekcje, jedną do migracji danych, a drugą do konwersji. Aby pracować nad tym projektem, powinieneś znać Groovy (język odpowiedzialny za Jenkins Pipeline), Python, Java, XML i Jenkins Pipelines.

Dowiedz się więcej o Jenkins i ciągłej dostawie

Dotarliśmy do końca naszej listy. Mamy nadzieję, że nasze pomysły na projekty Jenkins okazały się pomocne. Praca nad tymi projektami pomoże ci stać się lepszym użytkownikiem i programistą Jenkins. Dałoby to również doświadczenie we wdrożeniach Continuous Delivery. Jeśli chcesz dowiedzieć się więcej o Jenkins i Continuous Delivery, zachęcamy do odwiedzenia naszego bloga. Na naszym blogu znajdziesz wiele cennych i ekscytujących zasobów (takich jak ten). Oto dwa do dalszej lektury:

  • Wynagrodzenie Jenkinsa w Indiach
  • Co to jest Jenkins? Historia, architektura i nie tylko
  • Pytania do wywiadu z Jenkinsem

Jeśli chcesz dowiedzieć się więcej o tworzeniu pełnego stosu, zapoznaj się z dyplomem PG upGrad i IIIT-B w zakresie pełnego tworzenia oprogramowania, który jest przeznaczony dla pracujących profesjonalistów i oferuje ponad 500 godzin rygorystycznych szkoleń, ponad 9 projektów i zadań , status absolwentów IIIT-B, praktyczne, praktyczne projekty zwieńczenia i pomoc w pracy z najlepszymi firmami.

Jakie są twoje przemyślenia na temat tego artykułu? Który pomysł na projekt podobał Ci się najbardziej? Daj nam znać w sekcji komentarzy poniżej.

Kurs rozwoju oprogramowania | Opanuj Javę, C, Python i nie tylko‎

BRANŻOWE ZAUFANIE NAUKI - KURS ZORIENITOWANY PRAKTYCZNIE - CERTYFIKACJA UZNAWANA W BRANŻY.
Zapisz się dzisiaj