Co to jest repozytorium artefaktów?


Odpowiedzi:


32

Podczas programowania generujesz sporą liczbę różnych artefaktów. Mogą to być:

  • Kod źródłowy
  • Skompilowana aplikacja
  • Pakiet do wdrożenia
  • Dokumentacja

i potencjalnie także inni

Chociaż można użyć systemu kontroli źródła do przechowywania wszystkich z nich, jest to zwykle bardzo nieefektywne, ponieważ systemy kontroli źródła są zwykle zaprojektowane do obsługi plików tekstowych, a nie plików binarnych. Być może będziesz w stanie wykorzystać je jako prosty mechanizm przechowywania, jeśli większość wydań jest oparta na tekście i nie musisz przechowywać dużej ilości danych binarnych.

Repozytoria artefaktów służą jednak do przechowywania wszelkiego rodzaju plików, w tym plików binarnych. Obejmuje to wszystko od spakowanych kodów źródłowych, do budowania wyników, a także do rzeczy takich jak obrazy dokerów. Ponadto zwykle nie tylko przechowują te artefakty, ale także pomagają nimi zarządzać za pomocą różnych dodatkowych funkcji, na przykład:

  • Obsługa wersjonowania: poprawnie przechowuj niektóre metadane, np. Kiedy każdy artefakt został zbudowany, jaki jest jego numer wersji, przechowuj skróty itp.
  • Przechowywanie: pamiętaj, aby zachować tylko ważne artefakty i automatycznie usuwać te, które są tylko migawkami / nie są już potrzebne itp. Na podstawie różnych kryteriów, które możesz skonfigurować
  • Kontrola dostępu: określ, kto może publikować i kto może pobierać różne artefakty
  • Promocja: zdolność do promowania artefaktów. Na przykład możesz mieć artefakty migawkowe z krótkim okresem przechowywania na serwerze w pobliżu programistów i osobne repozytorium w pobliżu serwerów na żywo, gdzie pojawiają się tylko artefakty, które uznano za możliwe do wdrożenia. Obejmuje to także obsługę różnych kanałów wersji i przenoszenie artefaktów między nimi (np. Promowanie konkretnej wersji z wersji beta na stabilną).
  • Działa jako natywne repozytorium artefaktów. Oznacza to, że możesz użyć go jako głównego repozytorium dla maven, rubygemów, dokera itp. Może to również obejmować buforowanie artefaktów z oficjalnych repozytoriów.

Warto dodać możliwość „kanału” w stosunku do obsługi Versionning, mając możliwość, aby niektóre maszyny celowały w najnowsze wydanie w kanale „rozwijaj”, a maszyny produkujące atakujące określoną wersję w kanale „stabilnym”.
Tensibai,

@ Pierre.Vriens dodał kilka drobnych komentarzy, ale być może można to również rozwiązać w osobnym pytaniu
SztupY

merci, ale na wszelki wypadek, oto Twoja szansa na dalsze zajęcie się moim dodatkowym komentarzem ...
Pierre.Vriens

Czy ma sens śledzenie plików konfiguracyjnych lub urządzeń w tego rodzaju repozytoriach?
tutuca

7

Istnieją menedżery repozytoriów i menedżery repozytoriów pakietów Universal (UPM).

UPM mogą przechowywać wszystkie artefakty kompilacji dla Jenkinsa, teamcity itp. I ogólnie mogą również działać jako menedżery repozytoriów dla wielu różnych rodzajów artefaktów binarnych Maven, npm, NuGet i innych.

Byłyby to narzędzia takie jak Jfrog Artifactory , Inedo ProGet i Sonatype Nexus .

Całkiem przyzwoite porównanie znajduje się tutaj: https://binary-repositories-comparison.github.io/

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.