M365Con 2027 – conferenza online gratuita · 11–22 Jan 2027 · 120 sessions→ m365con.net

Blog · Mirko Peters

Prevenire e correggere il drift dell'infrastruttura in Terraform per Azure

By ·

Scopri come si verifica il drift dell'infrastruttura in Terraform e Azure, come le correzioni d'emergenza apportate dal portale danneggiano i file di stato e come rilevare e correggere le discrepanze in modo sicuro.

Automatically translated with AI from the original post. Read the English original

Cover: Terraform - Simply Explained

Il drift dell'infrastruttura è uno dei killer silenziosi più comuni e pericolosi negli ambienti cloud moderni. Quando gli ingegneri apportano modifiche manuali direttamente nel portale Azure durante le emergenze, le loro azioni interrompono silenziosamente la sincronizzazione con i repository di codice. Questa guida completa spiega come si verifica il drift, quali rischi comporta per i file di stato e come rilevare e correggere in modo sistematico le discrepanze senza causare interruzioni in produzione.

Punti chiave

Che cos'è il drift dell'infrastruttura e perché si verifica?

Anche i team di ingegneria cloud più disciplinati finiscono prima o poi per subire il drift dell'infrastruttura. Il drift è definito come qualsiasi modifica non autorizzata, non documentata o d'emergenza apportata alle risorse cloud che gestisce uno stato al di fuori delle pipeline automatizzate. Immagina un ingegnere chiamato d'urgenza durante un incidente notturno. Sotto pressione, accede alla console Azure, porta un limite di scalabilità automatica da cinque istanze a dieci, risolve il problema e torna a dormire.

Il problema è che il file di configurazione sotto controllo di versione nel repository riporta ancora cinque. L'ambiente cloud attivo dice dieci. Poiché nessuno ha documentato la modifica o aggiornato il codice, si crea un enorme scollamento tra l'architettura prevista e la realtà. Questo divario resta nascosto per settimane, finché qualcuno non esegue un normale plan di Terraform per un aggiornamento del tutto non correlato. All'improvviso, l'output del terminale mostra un avviso: Terraform intende riportare quelle istanze a cinque.

Il fattore umano e la pressione operativa

Il drift raramente nasce da intenzioni dolose; deriva quasi sempre dall'urgenza operativa. Quando gli ambienti di produzione vanno in crisi, l'istinto porta gli ingegneri a risolvere subito il problema con gli strumenti più rapidi a disposizione. Il provisioning punta-e-clicca nel portale Azure è veloce, tangibile e immediato. Tuttavia, ogni volta che un ingegnere usa il portale per correggere un problema senza registrarlo nel codice, accumula debito tecnico che dovrà essere ripagato più avanti, con gli interessi.

Come lo stato di Terraform individua le discrepanze

Per capire come Terraform rileva il drift, occorre osservare da vicino il suo meccanismo di memoria: il file di stato. Il file di stato di Terraform funge da fonte di verità definitiva, mettendo in relazione le risorse cloud con i file di configurazione. Quando esegui un comando, Terraform non si limita a inviare alla cieca i file al cloud. Esegue invece un confronto a tre vie.

Per prima cosa legge ciò che hai scritto nei file di configurazione. Poi esamina ciò che ha registrato nel file di stato durante l'ultima applicazione riuscita. Infine contatta l'API del cloud provider tramite i plugin e verifica cosa esiste davvero nella tua sottoscrizione in questo momento. Quando questi tre elementi non corrispondono, Terraform capisce che la realtà è cambiata senza che nessuno lo dicesse.

Il pericolo degli avvisi ignorati

Durante l'esecuzione di un plan, Terraform genera un output dettagliato che mostra aggiunte, modifiche ed eliminazioni. Quando è presente drift, spesso compaiono avvisi che indicano che una risorsa deve essere modificata o addirittura sostituita completamente. Chi inizia spesso va in panico davanti agli avvisi di sostituzione forzata delle risorse. Questo avviso non è un errore: è Terraform che ti dice che la risorsa in produzione è cambiata al punto da non essere più riconoscibile e che, per riportarla in linea con il codice, deve essere eliminata e ricreata.

Best practice per rilevare e prevenire il drift

Prevenire il drift richiede una combinazione di barriere culturali e controlli tecnici automatizzati. Se affidi il rilevamento del drift esclusivamente a controlli manuali, prima o poi vivrai interruzioni dolorose in produzione. Ecco le strategie di base che i team usano per mantenere allineati i propri ambienti cloud:

Come correggere il drift quando si verifica

Quando scopri che l'infrastruttura in produzione si è discostata dalla configurazione, ti trovi davanti a un bivio strategico. Hai due percorsi principali per la correzione:

La prima opzione è lasciare che Terraform sovrascriva l'ambiente attivo. Eseguendo il tuo consueto 'terraform apply', costringi Azure a ripristinare lo stato descritto nel codice. Questa è la strada giusta quando il drift è stato causato da una modifica manuale non autorizzata o da un'impostazione di debug temporanea che non dovrebbe più esistere.

La seconda opzione è aggiornare la configurazione di Terraform per farla corrispondere alla realtà. Scegli questo percorso quando l'hotfix manuale applicato durante un incidente si è rivelato necessario, stabile e utile per la produzione. Aggiornando il codice per riflettere la nuova realtà, chiudi il divario e fai in modo che le future esecuzioni automatiche preservino la configurazione necessaria.

Conclusione

Il drift dell'infrastruttura è una sfida inevitabile negli ambienti cloud dinamici, ma non deve significare un disastro per il tuo team. Comprendendo come il file di stato di Terraform registra le modifiche, implementando controlli di accesso rigorosi e trattando il rilevamento del drift come un'abitudine operativa regolare, puoi mantenere il pieno controllo della tua architettura cloud. Per approfondire i meccanismi di base dell'infrastruttura come codice, dei provider e della gestione dello stato, ascolta l'episodio completo e scopri tutti gli approfondimenti degli esperti per portare al livello successivo la tua strategia di automazione cloud.

Domande frequenti

Cosa causa il drift dell'infrastruttura in Terraform?

Il drift è causato da modifiche fuori banda apportate direttamente alle risorse cloud tramite portale, comandi CLI o script che aggirano la pipeline di Terraform.

Come rileva Terraform il drift di configurazione durante un'esecuzione di plan?

Terraform confronta il file di stato memorizzato con le risorse cloud effettive, tramite le API dei provider, e con i file di configurazione locali.

Cosa succede se qualcuno modifica manualmente una risorsa Azure gestita da Terraform?

La volta successiva che viene eseguito un plan di Terraform, il sistema segnalerà la discrepanza e tenterà di riportare la risorsa allo stato dichiarato nel codice, a meno che la configurazione non venga aggiornata.

Devo aggiornare il codice Terraform o annullare la modifica nel portale Azure?

Se la modifica manuale era un hotfix d'emergenza ormai necessario per la stabilità, aggiorna la configurazione di Terraform. Se invece era una modifica non autorizzata o accidentale, lascia che Terraform la ripristini.

Terraform

Related articles

RSS