Un approccio inatteso al deployment di Ubuntu

All'Ubuntu Summit 26.04, un evento tradizionalmente incentrato sull'ecosistema Canonical, la presentazione di Joseph Marrero Corchado, Principal Software Engineer di Red Hat, ha catturato l'attenzione. Il suo intervento, intitolato "Bootc: Use your container knowledge and infrastructure to build and deploy your Ubuntu hosts", ha illustrato come la toolchain bootc possa estendere i paradigmi di gestione dei container all'intero sistema operativo, inclusi gli host Ubuntu. Sebbene Ubuntu sia molto diffuso nell'ambito desktop, negli ambienti server aziendali si posiziona come una delle molte distribuzioni Linux disponibili. Questa neutralità consente di gestirlo efficacemente con strumenti FOSS esistenti, un principio che bootc abbraccia pienamente.

La presenza di un ingegnere Red Hat a un summit di Canonical non è del tutto inedita. In passato, eventi simili hanno ospitato presentazioni di progetti basati su distribuzioni diverse o che adottano approcci alternativi, come Pop!_OS di System76 o Rocky Linux. Marrero stesso ha sottolineato di lavorare per Red Hat ma di essere un utente Ubuntu di lunga data, evidenziando una prospettiva che trascende le affiliazioni aziendali e si concentra sulla funzionalità e l'interoperabilità degli strumenti open source. Questo contesto sottolinea una tendenza crescente nel settore tech, dove la collaborazione e l'adozione di soluzioni cross-vendor sono sempre più valorizzate per affrontare sfide infrastrutturali complesse.

bootc: containerizzazione del sistema operativo per VM e bare metal

Al centro della presentazione di Marrero c'è bootc, una toolchain che ha raggiunto lo status di progetto incubatore CNCF. bootc permette di effettuare installazioni e aggiornamenti del sistema operativo utilizzando immagini container OCI (Open Container Initiative) o Docker. Questo significa che gli amministratori di sistema possono definire e distribuire immagini personalizzate di un sistema operativo, come Ubuntu, come se fossero normali container. La caratteristica distintiva di bootc è la capacità di eseguire aggiornamenti transazionali in-place, con la possibilità di effettuare rollback in caso di problemi, garantendo maggiore stabilità e affidabilità nei processi di deployment.

Le immagini bootc sono particolari: pur essendo container, includono un kernel, rendendole eseguibili sia su macchine virtuali (VM) che su hardware bare metal. Questa flessibilità consente di testare e validare le immagini in ambienti di integrazione continua (CI) prima del deployment in produzione. bootc si propone come alternativa ai sistemi di imaging tradizionali, come Ubuntu-image di Canonical, che si basano su apt e repository standard. Invece, bootc sfrutta gli strumenti e i registri dei container, offrendo un approccio unificato alla gestione dell'infrastruttura. Progetti come SteamOS già utilizzano bootc, e il progetto Bootcrew mantiene una collezione crescente di immagini bootc per diversi sistemi operativi, tra cui Ubuntu, openSUSE e Debian.

Implicazioni per il deployment on-premise e il TCO

L'adozione di bootc offre significative implicazioni per la gestione dell'infrastruttura, in particolare per i deployment on-premise. La possibilità di gestire un sistema operativo server, cloud o desktop, insieme a tutti i suoi strumenti e applicazioni, da un unico punto centrale controllato, semplifica notevolmente le operazioni. Questo approccio può sostituire una vasta gamma di strumenti di gestione della configurazione, come Puppet, Chef o l'automazione tramite script shell, riducendo la complessità e il potenziale di errore umano. La standardizzazione basata su immagini container OCI consente un controllo granulare sulle configurazioni e un deployment più rapido e coerente.

Per le organizzazioni che valutano il deployment on-premise di carichi di lavoro AI/LLM, bootc può rappresentare un vantaggio strategico. Offre un maggiore controllo sulla sovranità dei dati e sulla conformità, consentendo di mantenere le immagini del sistema operativo e i relativi registri all'interno dell'infrastruttura aziendale, anche in ambienti air-gapped. I potenziali benefici sul Total Cost of Ownership (TCO) derivano dalla semplificazione dei processi di aggiornamento e manutenzione, dalla riduzione della necessità di strumenti di terze parti e dalla maggiore efficienza operativa. Le immagini sono costruite utilizzando composefs (nella sua implementazione Rust, composefs-rs), che si basa su strumenti Linux consolidati come overlayfs, il filesystem read-only EROFS e fsverity per la verifica dell'integrità, garantendo robustezza e sicurezza.

Una dimostrazione convincente e prospettive future

Durante la sua presentazione, Marrero ha offerto una dimostrazione pratica dell'efficacia di bootc. Ha deployato un'installazione predefinita di Ubuntu in pochi secondi sotto QEMU, quindi ha aggiunto il multiplexer di terminale tmux con un singolo layer container. Successivamente, ha mostrato come passare a un'immagine diversa con Apache e una pagina demo installata, un'operazione che ha richiesto circa un secondo più un riavvio della VM. Ha anche verificato la presenza e il funzionamento di snapd e ha installato LXD, confermando che il sistema gestito da bootc è a tutti gli effetti un'installazione Ubuntu completa e funzionale.

La toolchain dei "container avviabili" ha mostrato una maturità notevole, e la demo ha evidenziato la sua capacità di integrare Ubuntu in un set di strumenti di gestione radicalmente diverso con relativa facilità. Questo approccio offre alle aziende un'alternativa potente per il deployment e la gestione dei sistemi operativi, in particolare in contesti dove la coerenza, la velocità e il controllo sull'infrastruttura sono prioritari. Per chi desidera approfondire, Marrero ha anche messo a disposizione una guida per convertire una VM Ubuntu 26.04 LTS in un sistema gestito da bootc con composefs, ottenendo un sistema immutabile basato su immagini e aggiornabile atomicamente tramite container.