Co to jest repozytorium artefaktów?

Co to jest repozytorium artefaktów? Jeśli jest to tylko miejsce do przechowywania plików, czy nie mogę po prostu użyć systemu kontroli źródła?

Odpowiedź

W trakcie podczas rozwoju generujesz sporo różnych artefaktów. Mogą to być:

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

i potencjalnie także inne

Chociaż do przechowywania ich wszystkich można użyć systemu kontroli źródła, jest on zwykle bardzo nieefektywny, ponieważ systemy kontroli źródła są zwykle zaprojektowane do obsługi tekstu plików, a nie plików binarnych. Możesz ich użyć jako prostego mechanizmu przechowywania, jeśli większość twoich wydań jest oparta na tekście i nie musisz przechowywać wielu danych binarnych.

Jednak repozytoria artefaktów są przeznaczone do przechowywania wszelkiego rodzaju plików, w tym plików binarnych. Obejmuje to wszystko, od spakowanych kodów źródłowych, przez tworzenie wyników, po rzeczy takie jak obrazy dockera. Ponadto zwykle nie tylko przechowują te artefakty, ale także pomagają w zarządzaniu nimi za pomocą różnych dodatkowych funkcji, na przykład:

  • Obsługa wersji: prawidłowo przechowują niektóre metadane, na przykład kiedy każdy artefakt został zbudowany, jaka jest ich wersja liczba to, przechowuj ich skróty itp.
  • Przechowywanie: upewnij się, że przechowujesz tylko ważne artefakty i automatycznie usuwasz te, które są tylko migawkami / nie są już potrzebne itp. w oparciu o różne kryteria, które możesz skonfigurować
  • Kontrola dostępu: określ, kto może publikować i kto może pobierać różne artefakty.
  • Promocja: możliwość promowania artefaktów. Na przykład możesz mieć artefakty migawek z krótkim okresem przechowywania na serwerze w pobliżu twoich programistów i oddzielne repozytorium w pobliżu serwerów na żywo, w którym pojawiają się tylko artefakty, które zostały uznane za możliwe do wdrożenia. Obejmuje to również obsługę różnych kanałów wersji i przenoszenie artefaktów między nimi (np. Promowanie określonej wersji z wersji beta do stabilnej).
  • Działa jako natywne repozytorium artefaktów. Oznacza to, że możesz go używać jako głównego repozytorium dla mavena, rubygemów, dockera itp. Może to również obejmować buforowanie artefaktów z oficjalnych repozytoriów.

Komentarze

  • Może warto dodać funkcję ' channel ' zamiast obsługi Versionning, mając możliwość maszyna kierująca na najnowszą wersję w kanale " opracuj " i produkuj maszynę kierującą się na określoną wersję w kanale " stabilny ".
  • @ Pierre.Vriens dodał kilka drobnych komentarzy, ale być może można je również rozwiązać w osobnym pytaniu
  • merci, ale na wszelki wypadek tutaj to Twoja szansa na dalsze odniesienie się do mojego dodatkowego komentarza …
  • Czy ma sens śledzić również pliki konfiguracyjne lub urządzenia w tego rodzaju repozytoriach?

Odpowiedź

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

UPM mogą przechowywać wszystkie artefakty kompilacji dla Jenkinsa, teamcity itp. i ogólnie mogą również działać jako zarządcy repozytoriów dla wielu różnych typów artefaktów binarnych Maven, npm, NuGet i nie tylko.

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

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

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *