Artifactory è un prodotto di JFrog che funge da gestore di repository binario . Detto questo molto spesso si userà un 'artefatto' come sinonimo del repository binario più generale, proprio come molte persone usano Frigidaire o frigorifero per indicare il frigorifero indipendentemente dal fatto che sia un marchio Frigidaire o meno.
Il repository binario è un'estensione naturale del repository di codice sorgente, in quanto memorizzerà il risultato del processo di compilazione, spesso indicato come artefatti. Il più delle volte non si usa direttamente il repository binario ma attraverso un gestore di pacchetti fornito con la tecnologia scelta.
Nella maggior parte dei casi, questi memorizzeranno i singoli componenti dell'applicazione che possono essere successivamente assemblati in un prodotto completo, consentendo così di spezzare una build in blocchi più piccoli, facendo un uso più efficiente delle risorse, riducendo i tempi di costruzione, miglior tracciamento dei database binari di debug ecc.
Ecco alcuni dei gestori di pacchetti più popolari che possono essere gestiti utilizzando un repository binario:
- Java: jar, ear, war etc ha Maven e il MavenCentral ufficiale . Ci sono molti altri gestori di pacchetti che useranno anche il formato del repository binario maven ( edera , gradle ecc.).
- .Net: nuget per componenti .NET (DLL ed EXE) ma può anche essere usato come meccanismo di distribuzione in sistemi Windows come Chocolatey . Le versioni più recenti di Powershell possono anche sfruttare questo per distribuire i moduli PowerShell attraverso la galleria PowerShell di cui è possibile creare una distribuzione locale con un repository binario e un repository in formato nuget. Controlla anche OneGet se la gestione della distribuzione di Windows ti interessa.
- In JavaScript: abbiamo npm che è uno dei più popolari e richiederà nodejs .
- In pitone: c'è pip e l'indice pacchetto ufficiale pypi , che si può anche creare un'istanza locale attraverso repository binario che supporterà il formato.
Questo elenco è tutt'altro che completo, dà solo un'idea di cosa c'è là fuori.
Il repository binario può consentire di ospitare tutti questi sotto lo stesso tetto, rendendo la loro gestione molto più semplice per i team. Si noti che non è necessario un team di dimensioni molto grandi per iniziare a raccogliere benefici dalla gestione dei pacchetti binari. L'investimento iniziale non è molto elevato e i benefici si avvertono immediatamente. Soprattutto ora che sempre più piattaforme, framework e linguaggi stanno integrando questa gestione delle dipendenze direttamente in essi. Il loro più grande vantaggio che ho trovato è stato quello di creare un ambiente che i tuoi programmatori troveranno naturale e confortevole rendendolo essenziale. Ti aiuta come sviluppatori a creare una solida catena di strumenti e li aiuta a far sì che l'esperienza complessiva si adatti naturalmente alla loro scelta.
Come ho detto prima, ci sono molti prodotti là fuori che possono fungere da gestori di pacchetti binari, alcuni più generici di altri nel loro uso di destinazione, variando anche ampiamente in termini di accessibilità e prezzi.
La mia opinione personale è che i repository binari sono una parte vitale di una configurazione devops ben progettata come il repository di codice sorgente o l'integrazione continua.