Ce este un depozit de artefacte? Dacă este doar un loc pentru stocarea fișierelor, nu pot folosi doar un sistem de control sursă?
Răspuns
În timpul dezvoltare generezi o cantitate destul de mare de artefacte diferite. Acestea ar putea include:
- Codul sursă
- Aplicația compilată
- Un pachet implementabil
- Documentație
și potențial și alții
În timp ce ați putea utiliza un sistem de control sursă pentru a le stoca pe toate, este de obicei masiv ineficient, deoarece sistemele de control sursă sunt de obicei concepute pentru a gestiona textul fișiere și nu fișiere binare. Este posibil să le puteți folosi ca un mecanism de stocare simplu, dacă majoritatea versiunilor dvs. sunt bazate pe text și nu trebuie să stocați o mulțime de date binare.
Cu toate acestea, depozitele de artefacte sunt concepute pentru a stoca tot felul de fișiere, inclusiv cele binare. Aceasta include orice, de la coduri sursă comprimate, pentru a crea rezultate, la lucruri precum imagini docker, de asemenea. De asemenea, de obicei, ele stochează nu numai aceste artefacte, ci și le ajută să le gestioneze folosind diferite funcții suplimentare, de exemplu:
- Suport pentru versiuni: stocați corect unele metadate, cum ar fi când a fost construit fiecare artefact, ce versiune au numărul este, stocați hash-urile lor, etc.
- Păstrare: asigurați-vă că păstrați doar artefactele importante și ștergeți automat cele care sunt doar instantanee / nu mai sunt necesare etc., pe baza diferitelor criterii pe care le puteți configura
- Control acces: configurați cine poate publica și cine poate descărca diferitele artefacte
- Promovare: capacitatea de a promova artefacte. De exemplu, puteți avea artefacte instantanee cu o perioadă scurtă de păstrare pe un server lângă coderii dvs. și un depozit separat lângă serverele live, unde apar doar artefacte care au fost considerate implementabile. Aceasta include, de asemenea, suport pentru diferite canale de versiuni și mutarea artefactelor între ele (cum ar fi promovarea unei versiuni specifice de la beta la stabil).
- Acționați ca un depozit nativ pentru artefacte. Adică îl puteți folosi ca depozit principal pentru maven, rubygems, docker etc. Acest lucru poate include, de asemenea, stocarea în cache a obiectelor din depozitele oficiale.
Există managerii de depozite și managerii de depozite de pachete universale (UPM).
UPM-urile pot stoca tot artefactul dvs. de construcție pentru Jenkins, echipa de oraș etc. și, în general, pot acționa și ca gestionare de depozite pentru multe tipuri diferite de artefacte binare Maven, npm, NuGet și multe altele.
Acestea ar fi instrumente precum Jfrog Artifactory , Inedo ProGet , și Sonatype Nexus .
O comparație destul de decentă este aici: https://binary-repositories-comparison.github.io/