Condividi tramite


Usare l'infrastruttura come codice per aggiornare le zone di destinazione di Azure

Questo articolo descrive i vantaggi dell'uso dell'infrastruttura come codice (IaC) per aggiornare le zone di destinazione di Azure. Le organizzazioni devono aggiornare le zone di destinazione mentre operano per assicurarsi che le configurazioni siano corrette e rispondano alla necessità di modifiche.

IaC può gestire l'intero ciclo di vita ed è in grado di gestire le risorse distribuite. Le organizzazioni devono pianificare la distribuzione delle zone di destinazione di Azure con IaC. È necessario pianificare l'allineamento delle risorse non IaC esistenti con le risorse IaC supportate con la gestione dello stato. È necessario eseguire il mapping delle risorse esistenti allo stato desiderato.

Per altre informazioni, vedere Mantenere aggiornata la zona di destinazione di Azure.

Funzionamento dell'infrastruttura come codice

IaC si riferisce alle procedure e agli strumenti per gestire il ciclo di vita delle risorse dell'infrastruttura usando file di definizione leggibili dal computer. La definizione per l'infrastruttura viene scritta, sottoposta a controllo delle versioni, distribuita tramite pipeline e quindi diventa parte della distribuzione per i carichi di lavoro.

Le tecnologie IaC sono dichiarative, ovvero quando viene eseguita l'IaC, imposta la configurazione su ciò che viene descritto nel codice, indipendentemente dal relativo stato corrente. Quando si configura l'infrastruttura tramite script, ad esempio l'interfaccia della riga di comando di Azure o Azure PowerShell, sono imperativi. Gli script imperativi eseguono un set di azioni e il risultato dipende dallo stato corrente più dallo stato dopo le azioni.

Pertanto, se si dispone di un'infrastruttura come definizione di codice per una risorsa di Azure, è possibile eseguire tale definizione con la frequenza desiderata e crea una modifica solo se:

  • La definizione cambia per aggiungere nuove risorse, rimuovere le risorse distribuite in precedenza o modificare le risorse distribuite in precedenza.
  • La risorsa distribuita deriva dalla configurazione per reimpostare la configurazione a quella definita.

È possibile usare IaC per ripristinare lo stato rimuovendo le risorse non più necessarie e gestendo il ciclo di vita delle risorse tramite molte modifiche.

Nota

I meccanismi specifici per rimuovere le risorse con IaC variano. Ad esempio, Azure Bicep richiede l'uso di un complete tipo di distribuzione per correggere le risorse dell'ambito. Questo comando funziona solo in ambiti specifici. Per Terraform, le risorse hanno un lifecycle meta-argomento che fornisce istruzioni su come Terraform deve gestire le risorse.

Per le zone di destinazione di Azure sono disponibili due opzioni principali per l'infrastruttura come codice:

Vantaggi dell'aggiornamento di ALZ con l'infrastruttura come codice

I vantaggi seguenti descrivono perché è consigliabile usare l'infrastruttura come codice per aggiornare la zona di destinazione.

Ridurre il lavoro

È necessario meno sforzo per usare l'infrastruttura come codice per eseguire gli aggiornamenti rispetto all'esecuzione di modifiche manuali. La distribuzione IaC consente di rispondere alle domande seguenti:

  • Come vengono configurate le risorse oggi?
  • Come verrà configurato da questo aggiornamento?
  • Quali modifiche verranno apportate per renderlo in linea con questo aggiornamento?

Quando un'infrastruttura come set di strumenti di codice viene eseguita, può produrre un confronto o un readout "differenziale" delle modifiche. Esaminare questo readout prima di eseguire il commit delle modifiche nell'ambiente.

Il set di strumenti può compilare le informazioni per la modifica anziché un operatore o un tecnico.

Ridurre l'errore

A causa della natura programmatica delle distribuzioni, l'infrastruttura come codice riduce l'errore umano mentre apporta modifiche. Cambia solo ciò che viene definito e include opzioni di anteprima, quindi riduce le interruzioni causate da modifiche non riuscite o incomplete. Include anche opzioni di test migliorate.

Controllo della versione e cronologia

L'infrastruttura come distribuzioni di codice è supportata da un file di definizione, quindi è possibile usare il controllo del codice sorgente per gestire le versioni delle definizioni. A seconda del metodo di IaC usato, è possibile fare riferimento alle distribuzioni in Azure per Bicep o al file di stato per Terraform per esaminare la cronologia delle distribuzioni precedenti.

Quando si usano le procedure di controllo del codice sorgente, viene creato un nuovo ramo dell'IaC per aggiungere modifiche e revisioni. La cronologia del ramo nel sistema di controllo del codice sorgente acquisisce le iterazioni e le modifiche. È possibile usarla per distribuire le modifiche in un ambiente di test fino a quando non si è pronti per eseguire il merge e distribuire le modifiche nell'ambiente di produzione. Per altre informazioni, vedere Test dell'approccio per le zone di destinazione di Azure. Durante questo ciclo, i record di distribuzione acquisiscono la versione usata e le risorse distribuite, che fornisce una cronologia altamente visibile.

Usare questi metodi di test con Bicep per scopi di test generali. Con questi metodi, è possibile eseguire test prima di distribuire il codice ed è possibile eseguire test in ambienti non di produzione dal ramo.

Ambienti di test

Le distribuzioni IaC sono ripetibili, quindi è possibile usare la stessa definizione per distribuire un secondo o più ambienti in base alla distribuzione. Questo metodo è utile per testare le modifiche.

Ad esempio, se si vuole sostituire il Firewall di Azure usando lo SKU Premium, è possibile distribuire un ambiente di test e convalidare le modifiche senza modificare l'ambiente di produzione.

Rilevare le deviazioni di configurazione

IaC offre un'opzione univoca per intercettare le deviazioni di configurazione durante gli aggiornamenti. La distribuzione intercetta le modifiche apportate al file di definizione e presenta le istanze in cui la configurazione della risorsa è diversa dalla definizione.

Gli aggiornamenti della zona di destinazione con IaC consentono di intercettare questa deviazione della configurazione e di aggiornare il codice in modo appropriato, risolvere questi errori di configurazione tramite l'aggiornamento o risolverli in un altro modo.

Quando si apporta una modifica alle risorse tramite il portale, l'interfaccia della riga di comando o un metodo non IaC, la modifica viene implementata. La volta successiva che si esegue una distribuzione tramite IaC, contrassegna il confronto tra lo stato definito dal codice e lo stato effettivo nel portale usando le funzioni di simulazione o piano. Utilizzare questo metodo per identificare se un ambiente viene modificato all'esterno del file di codice.

Dopo aver identificato il disallineamento, è possibile eseguire IaC per tentare di allineare la distribuzione alla definizione. Usare questo metodo per identificare i problemi e correggere gli scenari a seconda della natura dei problemi, della natura dell'esecuzione e del modo in cui sono state apportate le modifiche. Ad esempio, Terraform tenta di ripristinare la baseline alle risorse distribuite e una Complete distribuzione in modalità in Bicep rimuove le risorse in un gruppo di risorse che non fanno parte della definizione. Questi strumenti rilevano e ripristinano la deriva della configurazione, ma potrebbero non risolvere tutti i problemi.

Per altre informazioni, vedere Modifiche fuori banda e Rilevamento e gestione della deriva con Terraform.

Le modifiche definite nel portale sono complesse da implementare in IaC. È necessario aggiornare il codice in modo che corrisponda allo stato corrente, che spesso comporta la revisione di ogni modifica della risorsa e l'aggiornamento dei relativi parametri in modo che corrispondano alla configurazione "così come è".

Se si usa IaC per gestire la zona di destinazione o altre risorse, è consigliabile apportare modifiche solo all'esterno di IaC come parte di un'emergenza. Prendere precauzioni con gli account che hanno accesso per apportare modifiche direttamente, ad esempio Privileged Identity Management.

Esaminare le procedure generali di automazione e sicurezza negli articoli seguenti:

Passaggi successivi

Esplorare un'introduzione agli strumenti IaC negli articoli seguenti: