Nexus to menager repozytorium npm, Docker Hub i Maven repository w jednym!
Z jego wykorzystaniem możesz utworzyć centralny punkt dystrybucyjny oprogramowania i współdzielić go z członkami swojego zespołu.
Nexus – Przykład wykorzystania
Kilka lat temu pracowałem w firmie zajmującej się tworzeniem informatycznych rozwiązań prawnych. System był bardzo rozległy, a nad samym rozwiązaniem pracowało blisko 250 specjalistów IT.
Tworzyliśmy rozległy system składających się z wielu modułów. Kilkanaście zespołów odpowiedzialnych było za tworzenie bibliotek, narzędzi, tooli, które były współdzielone pomiędzy modułami.
Zespół A wydał bibliotekę, z której zespół B również potrzebował skorzystać. W jaki sposób, więc najwygodniej współdzielić gotowe rozwiązania programistyczne pomiędzy zespołami?
Jednym z najpopularniejszych i najwygodniejszych narzędzi do tego służących jest Nexus. Pozwala on na stworzenie repozytorium:
- artefaktów Javowych,
- obrazów Dockerowych,
- paczek Kubernetesowych,
- paczek npm,
- oraz innych, których pełną listę znajdziesz w dokumentacji sonatype.
Dzięki takiemu rozwiązaniu zapewnisz infrastrukturę dzięki której developerzy będą mogli publikować skompilowane rozwiązania, a odbiorcy będą mogli automatycznie pobierać wybrane wydanie rozwiązania.
Nexus i Docker
Często w ramach firmy w jakiej pracujemy mamy konieczność udostępeniania obrazu dockerowego innemu developerowi czy nawet zespołowi. Jest na to kilka podejść, które szerzej omawiam w tym materiale:
Jednak jeśli chcemy zorganizować własne repozytorium w ramach naszej organizacji, to zdecydowanie jednym z najlepszych sposobów będzie postawienie własnej instancji Nexua. Sami zarządzamy polityką publikowania oraz dystrybucji obrazów.
O tym jak uruchomić własną instancję servera Nexus 3, oraz skonfigurować go na potrzeby udostępniania obrazów Dockerowych prezentuję w poniższym materiale.
Oczywiście pokazuje też przykład jak wrzucić i pobrać przykładowy obraz, aby upewnić się, że całe rozwiązanie dobrze się sprawdza.
Nexus – pełna automatyzacja
Możesz skonfigurować własny proces dystrybucji obrazów. Wykorzystując CI/CD np. Jenkinsa jesteś w stanie skonfigurować scenariusz w ramach którego definiujesz następujące kroki:
- W momencie pusha nowego kodu do repozytorium zbuduj na jego podstawie obraz Dockerowy.
- Obraz Dockerowy umieść w repozytorium Nexus, odpowiednio go otaguj i wygeneruj dokumentację.
- Dokonaj skanu bezpieczeństwa obrazu pod kątem potencjalnych podatności.
- Dokonaj natychmiastowegowdrożenia na podstawie obrazu dockerowego na instancję developerską i codziennie o 2:00 w nocy na instancję stage.
Podsumowanie możliwości dostarczanych przez menagera repozytorium Nexus
Nexus 3 daje duże możliwości i sprawia, że praca zespołów developerskich jest płynna. Mamy centralny punkt w ramach którego możemy sprawdzić jakimi wersjami oprogramowania dysponujemy i automatycznie pobierać najnowsze zmiany, gdy tylko równoległy zespół wyda najnowsza wersje swojej paczki.
Oczywiście zastosowań jest znacznie więcej i z pewnością dzięki temu menagerowi można znacznie ułatwić i usprawnić proces wydania oprogramowania.