L'ecosistema delle distribuzioni Linux è molto vario. Sostanzialmente è possibile reperire una soluzione per ogni tipologia di esigenza sia dal lato consumer che sul versante aziendale. Quest'oggi ci focalizzeremo su quest'ultimo, infatti per le imprese è sempre più comune adottare una specifica tipologia di sistema Linux definito come distribuzione immutabile.
Le distribuzioni immutabili sono piattaforme con cui è possibile creare delle istanze, identiche tra loro, replicabili su una moltitudine di terminali. Il root file system delle distribuzioni immutabili rimane sempre in modalità "read-only" e non può essere modificato, cosi da offrire le medesime configurazioni anche su decine di terminali differenti.
Sostanzialmente le distribuzioni immutabili hanno un insieme di librerie e setting "core" che rimangono appunto immutate tra i diversi computer presenti in una rete aziendale. Ovviamente l'amministratore di rete può sempre eseguire dei cambiamenti ad hoc ma l'utente standard si ritrova con una postazione di lavoro sempre identica a quella suo collega.
Come vengono sfruttati i sistema operativi immutabili in un contesto lavorativo?
In genere le distribuzioni immutabili vengono impiegate nel container-based software development per consentire ai coder di eseguire il testing di uno o più applicativi in sviluppo. Questi sistemi offrono una maggiore sicurezza rispetto alle distribuzioni generaliste e ciò ha fatto in modo che, negli anni, tali alternative venissero scelte sempre più spesso dai sistemisti per assicurare ambienti di lavoro conformi ai più rigidi dettami di sicurezza.
Dieci distribuzioni immutabili
Andremo ora ad illustrare le distribuzioni immutabili più popolari e maggiormente scelte dalla community degli addetti ai lavori. L'elenco non viene proposto in ordine d'importanza ed ogni distribuzione è valida per qualsiasi contesto.
blendOS
blendOS è un sistema pensato per offrire all'utente delle istanze estremamente personalizzate. Si tratta di una distribuzione basata su Arch Linux ed eredita da essa la sua filosofia di base. blendOS è quindi una piattaforma molto minimale e strutturata in modo tale da offrire solo i tool "core". Di default infatti non dispone nemmeno di un gestore di pacchetti preinstallato ma è possibile adottare quello che più si adatta alle proprie necessità grazie ad una particolare configurazione basata su Distrobox e Podman. Due noti tool open source sfruttati per generare, eseguire, distribuire ed amministrare i container.
Talos Linux
Talos Linux è un sistema operativo dedicato a Kubernetes, famoso software open source di orchestrazione e gestione di container. Rappresenta quindi una soluzione davvero completa per i developer che operano su piattaforme Cloud e che necessitano di realizzare delle istanze con Docker. Supporta inoltre nativamente varie soluzioni di virtualizzazione ed ovviamente anche i Bare-metal server.
openSUSE MicroOS
openSUSE MicroOS è una distribuzione Linux dedicata alla realizzazione di server su cui eseguire il deploy di container o per implementare dei workflow completamente automatizzati. Si tratta di un flavor ufficiale del noto progetto openSUSE, altro storico sistema Linux, che si basa su di un sistema di transactional update e sfrutta btrfs come file system di riferimento. In questo modo si possono gestire in modo efficace gli snapshot e preservare la struttura del sistema senza occupare troppo spazio su disco.
Flatcar Container Linux
Flatcar Container Linux è un progetto community-built, quindi viene realizzato interamente da contributor e maintainer volontari. Come è forse intuibile dal nome, esso è indirizzato principalmente ai container workload. Tale sistema viene distribuito tramite delle minimal OS image che contengono unicamente i tool necessari per eseguire i container. Non sono presenti quindi i package manager o altre configurazioni ed utility particolari.
Flatcar Container Linux è estremamente scalabile, sicuro e semplice da personalizzare in base alle proprie necessità operative.
carbonOS
carbonOS è una distribuzione Linux indipendente che si focalizza sull'offerta di una User Experience ottimale. Ciò avviene anche grazie all'adozione di GNOME come ambiente Desktop di riferimento così come tramite l'inclusione di un robusto set di tecnologie e tool. Adotta infatti in toto il sistema di pacchetti Flatpak, ormai divenuto uno standard in ambito Linux, ed offre anche un completo ecosistema di strumenti per la gestione e la creazione dei container. In carbonOS è reperibile inoltre un sistema per il safe system update e per il verified boot.
Guix
Guix è sviluppata direttamente dal team di programmatori del progetto GNU. Supporta i transactional upgrade ed integra un sistema per il roll-back alle versioni precedenti, in modo tale da assicurare un sistema sempre robusto e stabile. Oltretutto gli utenti hanno a disposizione un sistema di configurazione dichiarativo cosi da assicurare che le impostazioni siano sempre trasparenti e riproducibili con facilità.
Fedora Silverblue
Fedora Silverblue è una spinoff ufficiale di Fedora Workstation. Si tratta per questo di una delle distribuzioni immutabili più gettonate in Rete. Anche perché l'interfaccia utente, ovvero GNOME Shell, è praticamente quella offerta nell'edizione dedicata agli utenti consumer. Inoltre Fedora Silverblue gode degli stessi pacchetti software presenti nei repository di Fedora Workstation e il suo ciclo di sviluppo è il medesimo della versione "standard".
Fedora Silverblue è dedicata principalmente per gli utenti che si occupano del software development basato sui container. Oltretutto dispone della funzionalità per il roll back alla precedente release nel caso in cui qualcosa andasse storto durante l'upgrade del sistema operativo.
Vanilla OS
Vanilla OS è un progetto relativamente giovane ma offre in ogni caso un ambiente solido, basato sui pacchetti software presenti nei repository Debian, e robusto. Si tratta di una soluzione dedicata ai contesti professionali che necessitano di sistemi immutabili e facilmente replicabili. Il team della distribuzione mira ad offrire un ambiente Desktop semplice ed intuitivo.
NixOS
NixOS è un sistema incentrato sul package manager Nix. Si tratta di un software molto avanzato che adotta un modello di deployment funzionale in grado di sfruttare un proprio linguaggio di programmazione. In questo modo si possono generare dei pacchetti software estremamente ottimizzati. L'obbiettivo del progetto è quello di offrire un set di strumenti per la gestione affidabile e riproducibile delle diverse librerie/tool disponibili su più istanze.
Bottlerocket
Questo sistema Linux viene appositamente sviluppato dal team di AWS (Amazon Web Services) per eseguire container sulla piattaforma Cloud di Amazon. A differenza delle precedenti opzioni, è possibile sfruttare questa alternativa unicamente se si dispone dell'accesso ad una istanza su AWS. Bottlerocket consente di ridurre al minimo la manutenzione del sistema e fornisce un ambiente ideale per automatizzare task e workflow.