Perché usare gli stack di distribuzione?

Completato

Si sta valutando se gli stack di distribuzione possono fornire le funzionalità appropriate per la gestione del ciclo di vita delle risorse. Si è dedicato del tempo a conoscere le funzionalità degli stack di distribuzione e come usarli per gestire le applicazioni e le risorse di Azure. Si vuole scoprire di più sui motivi per cui è consigliabile prendere in considerazione gli stack di distribuzione e i relativi vantaggi complessivi.

In questa unità vengono illustrati i vantaggi degli stack di distribuzione.

Vantaggi degli stack di distribuzione

Esistono molti vantaggi che gli stack di distribuzione possono aggiungere al processo di provisioning delle risorse, tra cui:

  • Provisioning semplificato
  • Prevenzione delle modifiche non autorizzate
  • Pulizia delle risorse affidabile
  • Modelli standardizzati
  • Miglioramento dei processi esistenti

Provisioning semplificato

Si consideri un'applicazione che deve essere distribuita tra più gruppi di risorse tra più sottoscrizioni. In una distribuzione standard è necessario eseguire più operazioni di creazione nell'ambito di ogni gruppo di risorse. La pipeline di distribuzione deve essere progettata per gestire le dipendenze delle risorse e la sequenza di distribuzione.

Con gli stack di distribuzione, è possibile distribuire l'applicazione con un singolo comando. In questo esempio, quando si definisce l'ambito dello stack di distribuzione a livello di gruppo di gestione, tutte le risorse vengono distribuite nelle sottoscrizioni e nei gruppi di risorse appropriati al momento dell'esecuzione. Gli aggiornamenti all'applicazione vengono gestiti nello stesso modo, tramite un singolo comando di distribuzione.

Questo processo riduce significativamente il numero di operazioni necessarie per distribuire o modificare l'applicazione.

Prevenzione delle modifiche non autorizzate

Gli stack di distribuzione offrono un livello aggiuntivo di sicurezza e protezioni che consentono di evitare modifiche non autorizzate alle risorse di Azure.

Quando si crea uno stack di distribuzione, è possibile specificare un'autorizzazione applicata alle risorse gestite dallo stack. Queste autorizzazioni, note come impostazioni di negazione, vengono usate per impedire modifiche o eliminazioni da utenti non autorizzati.

Le impostazioni di negazione possono sembrare simili al concetto di controllo degli accessi in base al ruolo di Azure e ai blocchi di Azure. Il controllo degli accessi in base al ruolo viene usato per assegnare ruoli specifici a utenti specifici in un ambito specifico. Ad esempio, l'assegnazione del ruolo di collaboratore a un utente nell'ambito del gruppo di risorse. I blocchi vengono usati per impedire la modifica o l'eliminazione di risorse in ambiti specifici, indipendentemente dall'utente che esegue l'azione. Ad esempio, l'inserimento di un blocco di sola lettura nell'ambito della sottoscrizione impedisce modifiche o eliminazioni per tutte le risorse anche se l'utente dispone dell'autorizzazione di controllo degli accessi in base al ruolo per farlo.

Le impostazioni di negazione dello stack di distribuzione consentono di implementare controlli su una raccolta di risorse tra ambiti, che sostituisce eventuali assegnazioni o blocchi di controllo degli accessi in base al ruolo che potrebbero essere presenti.

Pulizia delle risorse affidabile

Si consideri un ambiente di sviluppo per un'applicazione distribuita in più gruppi di risorse in una sottoscrizione. Per rimuovere l'ambiente ed eliminare tutte le risorse, è necessario eseguire più operazioni di eliminazione nei gruppi di risorse e nelle risorse. Se esistono dipendenze tra le risorse, è possibile che l'operazione di eliminazione non riesca. Le risorse eliminate fuori sequenza possono anche causare l'esito negativo dell'operazione di eliminazione.

Gli stack di distribuzione consentono di eliminare lo stack e tutte le relative risorse tramite una singola chiamata API, senza dover essere a conoscenza delle dipendenze. Questa singola operazione rimuove le risorse in modo affidabile e migliora la velocità di rimozione.

Un altro vantaggio dell'eliminazione di risorse gestite da uno stack è il potenziale risparmio sui costi. L'eliminazione di un'applicazione e delle relative risorse non gestite da uno stack di distribuzione è spesso un'operazione manuale soggetta a errori. È possibile dimenticare accidentalmente di eliminare determinate risorse, che continuano a generare costi. Gli stack di distribuzione risolvono questo problema fungendo da strumento di gestione dei costi, soprattutto quando si gestiscono ambienti temporanei.

Quando si elimina uno stack di distribuzione, è possibile usare la proprietà actionOnUnmanage per determinare in che modo Azure gestisce le risorse, i gruppi di risorse e i gruppi di gestione contenuti nello stack. Azure può eliminare le risorse, i gruppi di risorse e i gruppi di gestione oppure scollegarli, il che significa che le risorse non vengono eliminate ma non sono più gestite dallo stack.

Processi e modelli standardizzati

La creazione e la distribuzione di uno stack di distribuzione e delle relative risorse sono quasi identiche a una distribuzione standard di Azure. Ad esempio:

Il comando dell'interfaccia della riga di comando di Azure per distribuire un file Bicep in un gruppo di risorse è:

az deployment group create \
    --resource-group rg-depositsApplication \
    --template-file ./main.bicep

Il comando dell'interfaccia della riga di comando di Azure per creare uno stack di distribuzione nell'ambito del gruppo di risorse è:

az stack group create \
    --name stack-deposits \
    --resource-group rg-depositsApplication \
    --template-file ./main.bicep \
    --action-on-unmanage detachAll \
    --deny-settings-mode none

Gli stack di distribuzione supportano l'uso di file Bicep, modelli JSON ARM o specifiche di modello per la definizione delle risorse in uno stack. Quando si distribuisce uno stack di distribuzione usando l'interfaccia della riga di comando di Azure o Azure PowerShell, è possibile puntare al file modello specifico (file Bicep o modello JSON ARM) o alla specifica del modello. Non è necessario modificare la modalità di definizione delle risorse.

Miglioramento dei processi esistenti

Se si usa già l'infrastruttura come codice per gestire le distribuzioni delle risorse in Azure, gli stack di distribuzione offrono maggiore controllo sul processo. Come illustrato nella sezione precedente, il processo di creazione di uno stack di distribuzione non è molto diverso dalla creazione di una distribuzione basata su un gruppo di risorse. La possibilità di eseguire la distribuzione tra gruppi di gestione, sottoscrizioni e gruppi di risorse con un singolo comando è molto più semplice con gli stack di distribuzione. La sicurezza delle risorse fa ora parte del processo di distribuzione con gli stack.