Finch, uno strumento di sviluppo da riga di comando per creare, eseguire e pubblicare contenitori Linux
Qualche giorno fa , Amazon ha annunciato, tramite un post sul blog, il lancio del suo progetto open-source "Finch", che sviluppa una serie di strumenti per creare, pubblicare ed eseguire container Linux in formato OCI (Open Container Initiative).
Si afferma che l'obiettivo principale del progetto "Finch" è semplificare il lavoro con i container Linux su sistemi host non basati su Linux.
Finch è un client open source per lo sviluppo di contenitori. Il suo semplice programma di installazione fornisce un client nativo minimo insieme a una distribuzione obiettiva di altri componenti open source. Invece di creare ancora più opzioni su cui ragionare e scegliere, Finch mira a promuovere altri progetti rendendoli più facili da installare e utilizzare, offrendo al contempo un semplice client nativo per collegare il tutto.
A proposito di Finch
Il progetto Finch si basa su diversi progetti open source, tra cui nerdctl, containerd, BuildKit e Lima. Questo permette di iniziare subito senza dover comprendere e configurare separatamente tutti questi componenti (sebbene l'esecuzione di container su sistemi Linux non sia un'operazione banale, creare un ambiente per eseguire container Linux su Windows e macOS non lo è affatto).
Per lavoro, offriamo la nostra utility Finch, che nasconde i dettagli del lavoro con ciascun componente dietro un'interfaccia unificata. Per iniziare, installa semplicemente il pacchetto fornito, che include tutto ciò di cui hai bisogno, dopodiché puoi creare ed eseguire immediatamente i contenitori.
Per creare l'interfaccia della riga di comando in Finch, vengono utilizzati gli sviluppi del progetto nerdctl, che fornisce una serie di comandi compatibili con Docker per creare, eseguire, pubblicare e caricare contenitori (build, run, push, pull, ecc.), come oltre a funzionalità opzionali aggiuntive come il funzionamento senza root, la crittografia delle immagini, la distribuzione delle immagini P2P tramite IPFS e la certificazione delle immagini con firma digitale.
Inoltre, viene menzionato che containerd viene utilizzato come runtime per la gestione dei contenitori, mentre il toolkit BuildKit viene utilizzato per creare immagini in formato OCI e Lima viene utilizzato per avviare macchine virtuali Linux, configurare la condivisione di file e il port forwarding di rete.
Per quanto riguarda le funzionalità di Finch, i punti salienti includono il supporto per dischi persistenti, miglioramenti nei tempi di inizializzazione delle macchine virtuali, dimezzando i tempi di avvio per gli sviluppatori, il supporto sperimentale per il framework di virtualizzazione di Apple, che offre ulteriori accelerazioni delle prestazioni in Finch VM e uno strumento di benchmark che viene eseguito a ogni commit per convalidare le metriche di prestazioni esistenti.
Attualmente, Finch è alla versione 1.0, contrassegnata come la prima versione stabile, adatta per le distribuzioni di produzione e l'uso quotidiano sulla piattaforma macOS. È previsto che il supporto client per Linux e Windows venga aggiunto nelle versioni future.
Vogliamo che Finch sia uno strumento di sviluppo runtime stabile ed efficiente che consenta agli utenti di svolgere facilmente le proprie attività di sviluppo creando ed eseguendo contenitori localmente e interagendo con i registri contenitori. Questa versione 1.0 rappresenta la nostra convinzione che Finch sia pronto per l'uso in produzione come strumento quotidiano dello sviluppatore di contenitori su macOS.
Come parte del progetto, Amazon ha anche preparato diverse estensioni che sono state trasferite nel corpo principale del progetto nerdctl. In particolare, sono stati predisposti componenti per la firma digitale delle immagini, nonché il supporto per la creazione e il lancio delle immagini utilizzando la tecnologia SOCI (Seekable OCI), originariamente creata per AWS e che consente un caricamento significativamente più veloce delle immagini del contenitore (SOCI consente di avviare il lancio senza aspettando che l'immagine sia completamente caricata e caricando le parti necessarie al lavoro man mano che servono).
Per chi fosse interessato al progetto, il codice di Finch è scritto in Go e distribuito con licenza Apache 2.0 su GitHub . I dettagli del rilascio sono disponibili nell'annuncio originale sul blog di AWS.