Was ist ein Artefakt-Repository?

Was ist ein Artefakt-Repository? Wenn es nur ein Ort zum Speichern von Dateien ist, kann ich dann nicht einfach ein Versionsverwaltungssystem verwenden?

Antwort

Während Bei der Entwicklung erzeugen Sie eine ganze Reihe verschiedener Artefakte. Dies können sein:

  • Der Quellcode
  • Die kompilierte Anwendung
  • Ein bereitstellbares Paket
  • Dokumentation

/ ul>

und möglicherweise auch andere

Während Sie ein Quellcodeverwaltungssystem verwenden könnten, um alle zu speichern, ist es normalerweise massiv ineffizient, da Quellcodeverwaltungssysteme normalerweise für die Verarbeitung von Text ausgelegt sind Dateien und keine Binärdateien. Sie können sie möglicherweise als einfachen Speichermechanismus verwenden, wenn die meisten Ihrer Versionen textbasiert sind und Sie nicht viele Binärdaten speichern müssen.

Artefakt-Repositorys dienen jedoch zum Speichern aller Arten von Dateien, einschließlich binärer Dateien. Dies umfasst alles von komprimierten Quellcodes über das Erstellen von Ergebnissen bis hin zu Docker-Bildern. Außerdem speichern sie diese Artefakte normalerweise nicht nur, sondern helfen ihnen auch bei der Verwaltung mithilfe verschiedener zusätzlicher Funktionen, z. B.:

  • Versionsunterstützung: Speichern Sie einige Metadaten ordnungsgemäß, z. B. wann jedes Artefakt erstellt wurde und welche Version sie haben Nummer ist, speichern Sie ihre Hashes usw.
  • Aufbewahrung: Stellen Sie sicher, dass Sie nur die wichtigen Artefakte behalten, und löschen Sie automatisch diejenigen, die nur Schnappschüsse sind / nicht mehr benötigt werden usw., basierend auf verschiedenen Kriterien, die Sie einrichten können
  • Zugriffskontrolle: Legen Sie fest, wer die verschiedenen Artefakte veröffentlichen und wer herunterladen kann.
  • Promotion: Fähigkeit, Artefakte zu promoten. Beispielsweise können Sie Snapshot-Artefakte mit einer kurzen Aufbewahrungsdauer auf einem Server in der Nähe Ihrer Codierer und ein separates Repository in der Nähe der Live-Server haben, in dem nur Artefakte angezeigt werden, die als bereitstellbar eingestuft wurden. Dies umfasst auch die Unterstützung verschiedener Versionskanäle und das Verschieben von Artefakten zwischen ihnen (z. B. das Heraufstufen einer bestimmten Version von Beta auf Stable).
  • Dient als natives Repository für die Artefakte. Dies bedeutet, dass Sie es als Haupt-Repository für Maven, Rubygems, Docker usw. verwenden können. Dies kann auch das Zwischenspeichern von Artefakten aus den offiziellen Repositories umfassen.

Kommentare

  • Möglicherweise lohnt es sich, die Funktion ' channel ' über die Versionning-Unterstützung hinzuzufügen, da einige verfügbar sind Maschine, die auf die neueste Version in Kanal " abzielt, " entwickelt und Maschine, die auf eine bestimmte Version in Kanal " stabile ".
  • @ Pierre.Vriens fügte einige kleine Kommentare hinzu, aber möglicherweise kann dies auch in einer separaten Frage behandelt werden
  • merci, aber nur für den Fall, hier ist Ihre Chance, meinen zusätzlichen Kommentar weiter anzusprechen …
  • Ist das sinnvoll? Verfolgen Sie auch Konfigurationsdateien oder Fixtures in solchen Repositorys?

Antwort

Es gibt Repository-Manager und Universal Packet Repository Manager (UPM).

UPMs können alle Ihre Build-Artefakte für Jenkins, Teamcity usw. speichern und im Allgemeinen auch als Repository-Manager für viele verschiedene Arten von binären Artefakten wie Maven, npm, NuGet und mehr fungieren.

Dies wären Tools wie Jfrog Artifactory , Inedo ProGet , und Sonatype Nexus .

Ein ziemlich anständiger Vergleich ist hier: https://binary-repositories-comparison.github.io/

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.