Spin è una bash utility pensata per facilitare il lavoro dei team di sviluppatori che sfruttano la potenza di Docker per la containerizzazione delle proprie applicazioni. Come sottolineato dall'autore del progetto, essa nasce in particolare per ridurre le perdite di tempo che si verificano quanto in produzione si devono correggere bug che sono stati già risolti in precedenza.
Cosa è Spin
Spin è una soluzione con cui replicare qualunque ambiente all'interno di qualsiasi terminale. Questo consente di duplicare localmente una configurazione già attiva in fase di produzione. Si tratta di una piattaforma del tutto agnostica rispetto al sistema operativo di riferimento. Essa funziona con Windows, Linux o macOS mettendo a disposizione le medesime funzionalità. Il vantaggio è quello di poter centralizzare la propria infrastruttura tramite un singolo file di configurazione utilizzando Docker.
Tecnicamente parlando, Spin si presenta come uno script per il wrapping che (almeno riguardo al suo funzionamento) non tiene conto delle differenze esistenti tra i vari ambienti. Niente vendor lock. Si può scegliere l'host più adatto alle propri esigenze indipendentemente dal provider che lo gestisce. Lo si può utilizzare con qualsiasi framework o linguaggio, se la soluzioni utilizzata può essere eseguita in Docker è supportata anche da Spin.
Gli standard rispettati sono conformi alle specifiche per Docker e vengono forniti dei template con cui automatizzare il delivery delle applicazioni. A ciò si aggiunge la gestione automatica di SSL con Let's Encrypt.
Installazione e tecnologie di Spin
Installare Spin è molto semplice, basta lanciare il seguente comando:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/serversideup/spin/main/tools/install.sh)"
Se invece si vuole creare un nuovo progetto è possibile utilizzare il comando spin new
. Ad esempio in questo modo, per Laravel:
spin new laravel {{ nome del progetto }}
Si può infine utilizzare spin init
per aggiungere Spin ad un progetto già esistente.
Alla base di Spin vi è una collection di tecnologie Open Source tra cui, naturalmente, Docker. Sono inclusi i template delle GitHub Action ma viene offerta anche la compatibilità con GitLab CI. L'automazione delle procedure di configurazione è affidata ad Ansible, noto progetto libero sponsorizzato da Red Hat.