~blogbackup-disaster-recovery-automazione-ai
Settembre 2026 9 min lettura
[ backup ] [ disaster recovery ] [ AI ] 21 Settembre 2026 · Fabio Fidone

> Backup e disaster recovery per sistemi automatizzati con AI:
la parte che nessuno progetta

Quando un'automazione AI smette di funzionare non è come un database che crasha: hai perso dati, storico, configurazioni, modelli fine-tuned. La maggior parte dei progetti di automazione non ha una strategia di disaster recovery, e lo scopri solo quando succede.

Chi costruisce sistemi automatizzati con AI tende a concentrarsi sul "che cosa" e il "come funziona": integrare un LLM, orchestrare agenti, connettere bot a database, mandare in produzione. Il disaster recovery arriva dopo, spesso quando il sistema ha già avuto un incidente.

Il problema è che una pipeline AI ha vulnerabilità diverse rispetto a un'app tradizionale. Non è solo una questione di database replicato e backup incrementali.

# Che cosa rischia una pipeline AI

Un sistema automatizzato con AI contiene più layer di dati e logica rispetto a un'applicazione classica:

  • Stato delle conversazioni: chat con LLM, memoria contestuale, storico degli agenti. Se lo perdi, ogni utente riparte da zero.
  • Modelli fine-tuned o RAG indexati: embedding, vector database, file di configurazione dei prompt. Un reset li cancella.
  • Integrazioni e credenziali: token API, chiavi di autenticazione con servizi esterni (email, Telegram, CRM, database clienti). Non è solo "ripristina dal backup" — devi ripristinare anche il collegamento.
  • Log di esecuzione e audit trail: se la pipeline smette non sai a che punto si era interrotta, se ha mandato mail duplicate, se ha creato record inconsistenti.
  • Configurazione dello stato della logica: quale agente è attivo, quali steps di una pipeline sono completati, quale risorsa esterna è in timeout.

Un database PostgreSQL in backup è una cosa. Una pipeline RAG dove l'embedding index è corrotto, i prompt sono versioni vecchie, e non sai quale richiesta era a metà è un'altra.

# Le tre dimensioni di un DR credibile

1. Backup dei dati persistenti

È la parte più ovvia, ma non è scontata come sembra:

  • Database di stato: conversazioni, risultati processati, metadati delle automazioni. Backup giornaliero o orario a seconda della criticità. Tienine almeno 2-3 copie in zone geografiche diverse se il downtime costa soldi.
  • Vector database / embedding store: Pinecone, Weaviate, Milvus, Chroma. Se usi il cloud, il provider fa backup, ma verifica la frequenza e il tempo di ripristino nei loro SLA. Se self-hosted, è responsabilità tua. Uno snapshot al giorno è il minimo.
  • File storage: documenti caricati dagli utenti, output generati, log di audit. Se usi S3 o simile, abilita il versioning e una regola di retention.
  • Configurazioni e prompt versioning: i tuoi prompt, le istruzioni degli agenti, i parametri di temperatura/top_k. Custodisci tutto in Git. Non in un file su desktop.

Errore comune: il backup del database c'è, ma nessuno ha mai testato se il ripristino funziona. Oppure si scopre che il backup è inconsistente perché la pipeline era ancora in scrittura quando è partito. Fai un test di ripristino almeno una volta all'anno, meglio una volta al trimestre se è production.

2. Tracciamento dello stato di esecuzione

Qui è dove la maggior parte dei progetti fallisce. Una pipeline automatizzata può interrompersi a metà:

  • Ha processato il messaggio dell'utente e generato una risposta LLM, ma non ha salvato il risultato in database.
  • Ha mandato un'email ma non ha aggiornato il flag "email inviata" nel record.
  • Ha downloadato un file, l'ha processato, ma poi la connessione al CRM è andata giù prima di salvare.

Senza un log di esecuzione dettagliato (idealmente idempotente), al ripristino non sai se ripetere l'ultima operazione o se era già stata completata.

La soluzione è logged checkpoints:

  1. Ogni step critico scrive un checkpoint con timestamp, ID della richiesta, esito.
  2. Se il sistema crasha, al riavvio legge l'ultimo checkpoint e sa da dove ricominciare.
  3. Se uno step è idempotente (es. "scrivi questo record se non esiste già"), ripeterlo non causa danni.

Strumenti come Temporal, Airflow, o anche semplici state machine salvate in database possono gestire questa parte. Ma va progettata da subito, non aggiunta dopo.

3. Piano di recovery operativo

Il disaster recovery non è solo tecnica. È anche procedura:

  • RTO (Recovery Time Objective): quanto tempo puoi stare down? Per un bot Telegram non critico, 2-3 ore vanno bene. Per un'automazione che processa ordini, anche 15 minuti sono troppi.
  • RPO (Recovery Point Objective): quanti dati perdi al massimo? Se perdi le ultime 6 ore di conversazioni è accettabile? O devi scendere a 15 minuti?
  • Procedura di failover: se il server principale cade, come attivi quello di backup? È automatico o manuale? Chi lo sa fare alle 3 di notte?
  • Verifica dei dati ripristinati: dopo il recovery, prima di mettere il sistema online, qualcuno controlla che non ci siano inconsistenze? Un prompt che ha una versione vecchia di 3 mesi? Un agente che ha configurazione parziale?

# Strategie concrete per diversi scenari

Scenario RTO RPO Approccio consigliato
Bot Telegram non critico (intrattenimento, informazioni) 2-4 ore 24 ore Backup database giornaliero, replica su storage secondario (S3), recovery manuale. Uptime non è critica, ma la continuità dei dati sì.
Automazione CRM / email (business process) 30 minuti 1 ora Replicazione database in tempo reale (PostgreSQL streaming replication), vector DB con snapshot orario, checkpoint di esecuzione per ogni operazione critica, failover semi-automatico.
Sistema di elaborazione ordini / pagamenti 5-15 minuti 5 minuti Active-active su due zone di disponibilità, database distribuito (Postgres multi-master o cluster), vector DB sincronizzato, queue (RabbitMQ, Redis) per le operazioni in-flight, monitoring in tempo reale con alert.
Pipeline di analisi batch notturna (non real-time) 24 ore 24 ore Backup giornaliero post-elaborazione, checkpoint tra i step, log di esecuzione. Se fallisce, riparte dal checkpoint precedente la notte dopo.

La colonna della destra non è una lista di tool, è una descrizione della robustezza che serve. I tool specifici dipendono dal tuo stack.

# Cosa include un DR plan realistico

Documentazione (spesso dimenticata)

  • Dove sono i backup? Cloud, on-prem, quanti giorni di retention?
  • Come si ripristina il database? Quali comandi, quale ordine?
  • Come si ripristinano le credenziali? (Vault, .env file, AWS Secrets Manager?)
  • Come si verifica che tutto sia online? Chi fa il test, quand'è programmato?
  • Chi è il responsabile? Chi contatti alle 3 di notte se il sistema è down?

Test periodici

  • Almeno una volta al trimestre: simula un crash, ripristina da backup, verifica che il sistema sia operativo.
  • Tempo massimo per il ripristino: va registrato e confrontato con l'RTO. Se impiega 3 ore ma il tuo RTO è 30 minuti, hai un problema.
  • Consistency check: dopo il ripristino, verifica che non ci siano record duplicati, conversazioni incomplete, credenziali scadute.

Monitoraggio e alerting

  • Logs di esecuzione: centralizzati (ELK, Datadog, Grafana Loki), non solo nel filesystem della VM.
  • Alerting su errori critici: se uno step della pipeline fallisce, qualcuno lo sa entro 5 minuti.
  • Health check periodici: ogni ora almeno un "test" che la pipeline è ancora reattiva.

Punto critico spesso ignorato: il backup del file di configurazione di produzione. Se per sbaglio o per attacco quella configurazione viene cancellata o corrotta, senza un backup versionato torni a ricostruire da zero. Git con branch protetti e review prima di merge risolve il 90% di questi problemi.

# Quando il DR NON serve (davvero)

Essere onesti: non sempre il DR completo è proporzionato al rischio.

Un bot Telegram che legge il meteo e lo riscrive in formato buffo non ha bisogno di active-active replica. Perdi 24 ore? È spiacevole ma non costa nulla. In quel caso: backup giornaliero, recovery manuale entro 24 ore, test annuale. Basta.

Però se quell'automazione è collegata a un sistema che elabora ordini, genera fatture o interagisce con banche, ogni ora di downtime costa. Lì il DR non è opzionale.

La domanda giusta non è "quanto DR mi serve in assoluto", ma "quanta perdita di uptime e quanti dati persi l'azienda tollera?" Da lì definisci RTO e RPO, e da lì scegli l'infrastruttura.

# Checklist finale

  • Database principale: ha backup? Dove? Quanta retention? Testato il ripristino?
  • Vector DB / embedding store: ha backup? Se è gestito dal provider, conosci il loro SLA?
  • Configurazioni e prompt: sono in Git con history? O solo su un file locale?
  • Credenziali e secret: sono gestiti da un Vault (AWS Secrets, Vault di HashiCorp, etc.) o sparse in .env file?
  • Log di esecuzione: sono centralizzati o solo nel filesystem?
  • Checkpoint di stato: ogni operazione critica sa da dove ricominciare in caso di crash?
  • RTO e RPO: sono documentati e concordati con chi usa il sistema?
  • Test di recovery: quando è stato l'ultimo? Quanto tempo ha impiegato? È stato documentato?
  • Responsabile DR: chi è? Come lo contatti se il sistema è down?

// FAQ

Ogni quanto devo testare il disaster recovery?

Almeno una volta all'anno, meglio una volta al trimestre se il sistema è in produzione e ha utenti attivi. Il test deve essere realistico: simula un vero crash, ripristina da backup, verifica che il sistema sia operativo e che non ci siano inconsistenze nei dati. Se durante il test scopri che il ripristino impiega 4 ore ma il tuo RTO è 1 ora, hai trovato un problema che va risolto prima che succeda un vero incidente.

Se il database è replicato in tempo reale, ho ancora bisogno di backup?

Sì. La replica protegge da un crash del server principale, ma non da errori logici (un bug che cancella tutti i record, un attacco che corrompe i dati, un comando DELETE che va su tutta la base dati). Con solo replica, cancelli l'intero database e la replica lo sincronizza subito, perdendo tutto. Con backup indipendente, torni indietro di ore o giorni. Usa entrambi: replica per uptime, backup per data loss.

Come gestisco il backup di un modello fine-tuned o una pipeline RAG se sono su un servizio cloud?

Dipende dal servizio. Se usi OpenAI fine-tuning, il modello è loro responsabilità. Se usi Hugging Face e hai fine-tuned localmente, scarica il modello e salvalo in storage versionato (S3, GCS). Se la RAG usa un vector DB gestito (Pinecone, Weaviate cloud), controlla il loro SLA di backup e retention. Se self-hosted, il backup è tuo: uno snapshot del vettore store almeno giornaliero, conservato per almeno 30 giorni. Per i prompt e le configurazioni, sempre Git.

[ prossimo passo ]

Vuoi valutare una soluzione simile per la tua azienda?

Dimmi il tuo caso, valuto la fattibilità e ti dico costi e tempi realistici. Il primo confronto è gratuito.

Parliamo — è gratis → Altri articoli →