
Artifactory
Artifactory ist ein Lagerhaus für fertige Softwarebausteine: Es speichert die Dateien, aus denen Programme zusammengesetzt werden, und liefert sie zuverlässig an Entwickler und Server aus. Die Software der Firma JFrog gilt in vielen Unternehmen als Standardwerkzeug dafür.
Software entsteht heute selten von Grund auf neu. Fast jedes Programm setzt sich aus vielen fertigen Bauteilen zusammen, die andere Leute geschrieben haben. Solche Bauteile nennt man Artefakte: fertig verpackte Dateien, die ein Programm benutzen kann. Artifactory ist ein Lagerhaus für genau diese Dateien. Es sammelt sie an einem Ort, verwaltet sie und gibt sie an alle heraus, die sie brauchen. Entwickelt wird es von der israelisch-amerikanischen Firma JFrog, und in vielen großen Unternehmen ist es das zentrale Werkzeug für diese Aufgabe.
Warum Firmen ein zentrales Lager für Bauteile brauchen
Ein mittelgroßes Programm kann leicht mehrere hundert fremde Bauteile verwenden. Diese liegen normalerweise auf öffentlichen Servern im Internet verstreut. Bei jedem Zusammenbau des Programms müssten sie neu heruntergeladen werden. Das ist langsam, und es funktioniert nur, solange die fremden Server erreichbar sind. Fällt einer aus, steht die Entwicklung still.
Ein zentrales Lager löst dieses Problem. Artifactory holt ein Bauteil einmal aus dem Internet und behält eine Kopie. Beim nächsten Mal kommt sie aus dem eigenen Netz und ist in Sekundenbruchteilen da. Das spart Zeit und macht die Firma unabhängiger von fremden Servern.
Dazu kommt die Sicherheit. In fremden Bauteilen stecken manchmal Sicherheitslücken oder sogar absichtlich eingebauter Schadcode. Ein zentrales Lager ist der eine Punkt, an dem man alles prüfen kann, bevor es ins Unternehmen gelangt. Man kann dort auch nachvollziehen, welches Programm welche Version eines Bauteils benutzt hat. Als 2021 die Sicherheitslücke Log4Shell in einem weit verbreiteten Java-Baustein auftauchte, war genau diese Frage in vielen Firmen tagelang die dringendste.
Wie das Lager Bauteile annimmt und ausgibt
Artifactory arbeitet mit drei Arten von Ablagen, im Fachjargon Repositories genannt. Lokale Ablagen enthalten das, was die Firma selbst gebaut hat. Entfernte Ablagen sind Spiegel öffentlicher Quellen aus dem Internet. Virtuelle Ablagen fassen mehrere davon zu einer einzigen Adresse zusammen, sodass Entwickler nur eine Adresse kennen müssen.
Der Ablauf ist einfach. Ein Entwickler oder ein automatischer Server fragt nach einem bestimmten Bauteil in einer bestimmten Version. Artifactory schaut zuerst im eigenen Bestand nach. Findet es nichts, holt es die Datei aus dem Internet, legt eine Kopie an und liefert sie aus. Beim nächsten Mal antwortet es sofort aus dem eigenen Bestand.
Ein wichtiger Punkt ist die Unterscheidung zu einem gewöhnlichen Dateispeicher. Artifactory versteht die Formate, mit denen verschiedene Programmiersprachen arbeiten, etwa Maven für Java oder npm für JavaScript. Es kennt außerdem Container-Images, also fertig verpackte Programme samt ihrer Umgebung. Zu jedem Bauteil speichert es Zusatzangaben: wer es hochgeladen hat, aus welchem Quelltext es entstand, welche Prüfungen es bestanden hat.
Artifactory in Firmen und in den Nachrichten
Als normaler Nutzer wirst du Artifactory nie direkt sehen. Es läuft im Hintergrund der Entwicklungsabteilungen. Wer aber ein Praktikum in der Softwareentwicklung macht, stößt fast sicher darauf. Es steht meist zwischen dem Quelltext-Speicher und dem Server, der das fertige Programm ausliefert.
In Wirtschaftsnachrichten taucht die Herstellerfirma JFrog regelmäßig auf. Sie ging 2020 an die US-Technologiebörse Nasdaq und gehört zur Gruppe von Anbietern, die Werkzeuge für Softwareentwicklung verkaufen. Konkurrenten sind unter anderem Sonatype Nexus und die Paketverwaltung von GitHub.
Ein zweites Thema ist die Sicherheit von Lieferketten in der Software. Politik und Behörden verlangen zunehmend, dass Firmen eine Liste aller verbauten Fremdteile vorlegen können. Diese Liste heißt Software Bill of Materials, kurz SBOM. Werkzeuge wie Artifactory sind die naheliegende Stelle, an der solche Listen entstehen. Auch für KI-Projekte wird das relevant: Trainierte Modelle und Datensätze sind ebenfalls große Dateien, die verwaltet und versioniert werden müssen.