Perché usiamo NixOS per la nostra infrastruttura cloud

Uno sguardo dall'interno sul perché Alplink ha scelto NixOS rispetto alle distribuzioni Linux tradizionali per gestire l'infrastruttura cloud europea. Riproducibilità, aggiornamenti atomici, sicurezza e vantaggi per i nostri clienti.

By Alplink Tech Team · 2026-03-15 · 6 min read

Quando abbiamo iniziato a costruire Alplink, avevamo una domanda fondamentale a cui rispondere: quale sistema operativo affidi alla produzione per infrastrutture destinate ad aziende europee che hanno a cuore la sovranità dei dati, la sicurezza e l'affidabilità?

Abbiamo valutato i candidati abituali — Ubuntu, Debian, CentOS, Alpine. Sono tutte scelte solide usate da migliaia di aziende. Ma continuavamo a imbatterci negli stessi problemi: configuration drift, deployment non riproducibili, ansia da aggiornamento e il divario "funziona sulla mia macchina" tra sviluppo e produzione.

Poi abbiamo scoperto NixOS, e ha cambiato il nostro modo di pensare all'infrastruttura.

Cos'è NixOS?

NixOS è una distribuzione Linux costruita sul package manager Nix. A differenza delle distribuzioni tradizionali dove si installano pacchetti e si modificano file di configurazione in modo imperativo (apt install, poi modifica /etc/something.conf), NixOS adotta un approccio dichiarativo: descrivi l'intero sistema in un unico file di configurazione, e NixOS lo costruisce.

{ config, pkgs, ... }:
{
  services.nginx.enable = true;
  services.postgresql.enable = true;
  services.postgresql.package = pkgs.postgresql_16;

  networking.firewall.allowedTCPPorts = [ 80 443 ];

  security.acme.acceptTerms = true;
  security.acme.defaults.email = "admin@example.com";
}

Questa configurazione non è uno script che esegue comandi. È una specifica dello stato desiderato del sistema. NixOS la legge e costruisce l'intero sistema operativo — kernel, pacchetti, servizi, utenti, regole firewall — da questa unica fonte di verità.

Perché questo conta per i nostri clienti

1. Deployment riproducibili

Ogni server che installiamo è costruito dalla stessa configurazione NixOS. Non c'è drift tra le macchine, nessun "questo server ha un pacchetto in più perché qualcuno ha fatto debug sei mesi fa." Se la nostra configurazione dice PostgreSQL 16 con queste impostazioni, quello è esattamente ciò che ogni server esegue.

Questo significa che quando installiamo la tua istanza Odoo, il tuo sito WordPress o la tua applicazione personalizzata, l'ambiente è identico ogni volta. Nessuna sorpresa.

2. Aggiornamenti atomici e rollback

Gli aggiornamenti Linux tradizionali mettono ansia. Esegui apt upgrade, i pacchetti si aggiornano uno alla volta, e se qualcosa si rompe a metà strada, ti ritrovi con un sistema parzialmente aggiornato.

Gli aggiornamenti NixOS sono atomici. Il sistema costruisce la nuova configurazione interamente, e poi passa ad essa in un'unica operazione. Se la nuova configurazione fallisce, quella vecchia è ancora lì — intatta. Fare rollback è semplice come selezionare la generazione precedente all'avvio.

Abbiamo fatto rollback di sistemi in produzione in meno di 30 secondi. Prova a farlo con una distribuzione tradizionale.

3. Sicurezza attraverso l'immutabilità

I sistemi NixOS sono funzionalmente immutabili. Non puoi fare SSH su un server ed eseguire apt install — le modifiche devono passare attraverso la configurazione. Questo elimina un'intera classe di rischi di sicurezza:

  • Nessun configuration drift — il sistema in esecuzione corrisponde sempre alla configurazione dichiarata
  • Nessun shadow IT sui server — nessuno può installare software non autorizzato
  • Audit trail completo — ogni modifica è un commit Git nel nostro repository di configurazione
  • Patch di sicurezza riproducibili — quando esce una CVE, aggiorniamo la configurazione una volta e ricostruiamo tutti i server interessati

4. Infrastructure as code, per davvero

Molte aziende affermano di fare "infrastructure as code" ma hanno ancora passaggi manuali, modifiche non documentate e conoscenza tribale su come i server sono effettivamente configurati. Con NixOS, la configurazione è l'infrastruttura. Non c'è divario tra documentazione e realtà.

L'intera configurazione della nostra infrastruttura vive in un repository Git. Ogni modifica è revisionata, testata e versionata. Se un cliente chiede "quale software esatto sta girando sul mio server?", possiamo indicargli il commit esatto.

Come NixOS si confronta con gli approcci tradizionali

Aspetto Tradizionale (Ubuntu/Debian) NixOS
Configurazione Imperativa (modifica file, esegui comandi) Dichiarativa (descrivi lo stato desiderato)
Aggiornamenti In-place, possono fallire parzialmente Atomici, tutto o niente
Rollback Manuale, spesso impossibile Integrato, istantaneo
Riproducibilità Best-effort con Ansible/Puppet Garantita by design
Rilevamento drift Richiede strumenti esterni Impossibile per architettura
Audit trail Dipende dalla disciplina Automatico (Git + Nix store)

I compromessi

Crediamo nella trasparenza, quindi ecco cosa ci costa NixOS:

  • Curva di apprendimento ripida — Nix ha un proprio linguaggio funzionale. Il nostro team ha investito molto tempo per impararlo. È tempo che i nostri clienti non devono spendere.
  • Community più piccola — NixOS ha una community appassionata ma più piccola di Ubuntu o Debian. Trovare risposte a volte richiede ricerche più approfondite.
  • Modello mentale diverso — Gli ingegneri abituati all'amministrazione imperativa di Linux devono rieducare i propri istinti. Non si sistema un server NixOS facendo SSH e modificando file.

Consideriamo questi compromessi giustificati perché i nostri clienti ottengono i benefici (riproducibilità, sicurezza, affidabilità) senza sostenerne i costi (imparare Nix, mantenere le configurazioni).

Esempio reale: deployment dello stack Odoo di un cliente

Ecco una versione semplificata di come installiamo l'istanza Odoo di un cliente:

{ config, pkgs, ... }:
{
  services.odoo = {
    enable = true;
    package = pkgs.odoo17;
    domain = "erp.customer-company.eu";
    settings = {
      dbfilter = "^customer_prod
quot;; proxy_mode = true; list_db = false; }; }; services.postgresql = { enable = true; package = pkgs.postgresql_16; settings = { shared_buffers = "2GB"; effective_cache_size = "6GB"; }; }; services.nginx.virtualHosts."erp.customer-company.eu" = { enableACME = true; forceSSL = true; }; services.backup.postgresql = { enable = true; schedule = "daily"; retention = 30; }; }

Questo singolo file definisce lo stack completo: Odoo, PostgreSQL, Nginx con SSL automatico e backup giornalieri con 30 giorni di conservazione. È versionato, sottoposto a peer review e riproducibile. Se dobbiamo migrare il cliente su nuovo hardware, applichiamo la stessa configurazione e otteniamo un sistema identico.

Perché vi raccontiamo tutto questo

La maggior parte delle aziende di hosting tratta la propria infrastruttura come una scatola nera. Noi pensiamo che sia sbagliato.

Quando affidi a un provider i dati della tua azienda, meriti di sapere come opera. Usiamo NixOS perché ci offre — e di conseguenza offre ai nostri clienti — garanzie che l'infrastruttura tradizionale non può eguagliare: riproducibilità, verificabilità e la possibilità di dimostrare esattamente cosa sta girando sul tuo server in qualsiasi momento.

Questo è particolarmente importante per le aziende europee soggette al GDPR e a regolamentazioni settoriali specifiche. Quando un auditor chiede "come garantite configurazioni di sicurezza coerenti su tutti i server?", non gli mostriamo un runbook sperando che sia stato seguito. Gli mostriamo la configurazione NixOS e lo storico Git.

Vuoi vederlo in azione?

Alplink gestisce infrastruttura cloud europea completamente gestita su NixOS. Che tu abbia bisogno di hosting per Odoo, WordPress o applicazioni personalizzate, ogni deployment beneficia di build riproducibili, aggiornamenti atomici e delle garanzie di sicurezza che derivano dall'infrastruttura dichiarativa. I tuoi dati restano in Europa, la tua infrastruttura è verificabile, e non dovrai mai preoccuparti di configuration drift o aggiornamenti andati male. Scopri cosa Alplink può fare per la tua azienda.