Informazioni su Azure Resource Manager

Completato

Il team ha dedicato tempo all'apprendimento dei vantaggi dell'infrastruttura come codice e dei diversi approcci disponibili. L'azienda è in rapida crescita e il team sa che verrà distribuito un numero significativo di risorse in Azure. Il team ha deciso che l'infrastruttura come codice dichiarativa è l'approccio giusto al provisioning delle risorse. Il team non vuole gestire gli script che elencano ogni passaggio della distribuzione. Prima di iniziare il processo di creazione del primo modello, è necessario comprendere in che modo funziona Azure Resource Manager. L'analisi dei tipi di modelli disponibili per l'uso con Azure consente di determinare i passaggi successivi della strategia di infrastruttura-come-codice.

In questa unità vengono illustrati Resource Manager e i due tipi di modelli di Resource Manager.

Concetti di Azure Resource Manager

Azure Resource Manager è il servizio usato per distribuire e gestire le risorse in Azure. È possibile usare Resource Manager per creare, aggiornare ed eliminare risorse nella sottoscrizione di Azure. È possibile interagire con Resource Manager usando molti strumenti, incluso il portale di Azure. Resource Manager offre anche una serie di altre funzionalità, ad esempio controllo di accesso, audit e assegnazione di tag, per agevolare la gestione delle risorse dopo la distribuzione.

Terminologia

Quando si inizia il percorso cloud con Resource Manager, è importante comprendere alcuni termini e concetti:

  • Risorsa: Elemento gestibile disponibile sulla piattaforma Azure. Le reti virtuali, le macchine virtuali, gli account di archiviazione, le app Web e i database sono esempi di risorse.

  • Gruppo di risorse: contenitore logico in cui risiedono le risorse correlate per una soluzione di Azure. Il gruppo di risorse include le risorse da gestire come gruppo. La maggior parte delle risorse di Azure è contenuta in gruppi di risorse. Si decide quali risorse appartengono a un gruppo di risorse in base a quello che è più adeguato alla propria soluzione.

    Nota

    Un numero ridotto di risorse non è contenuto nei gruppi di risorse. Questi tipi di risorse sono per scopi specifici, ad esempio la gestione del controllo di accesso e l'applicazione dei criteri. Altre informazioni su queste risorse sono contenute in un modulo successivo.

  • Sottoscrizione: contenitore logico e limite di fatturazione per le risorse e i gruppi di risorse. Ogni risorsa e ogni gruppo di risorse di Azure sono associati a una sola sottoscrizione.

  • Gruppo di gestione: contenitore logico usato per gestire più sottoscrizioni. È possibile definire una gerarchia di gruppi di gestione, sottoscrizioni, gruppi di risorse e risorse per gestire in modo efficiente l'accesso, i criteri e la conformità tramite l'ereditarietà.

  • Modello di Azure Resource Manager (modello ARM): file di modello che definisce una o più risorse da distribuire a un gruppo di risorse, una sottoscrizione, un gruppo di gestione o un tenant. È possibile usare il modello per distribuire le risorse in modo coerente e ripetibile. Esistono due tipi di file di modello ARM: JSON e Bicep. Questo modulo è incentrato sulle Biceps.

Vantaggi

Resource Manager offre numerosi vantaggi e funzionalità in relazione al provisioning delle risorse basato su infrastruttura-come-codice:

  • È possibile distribuire, gestire e monitorare le risorse nella soluzione come gruppo anziché come singolo utente.
  • È possibile ridistribuire la soluzione nel corso del ciclo di vita dello sviluppo con la certezza che le risorse vengano distribuite in uno stato coerente.
  • È possibile gestire l'infrastruttura usando modelli dichiarativi anziché script.
  • È possibile specificare le dipendenze delle risorse per assicurarsi che le risorse vengano distribuite nell'ordine corretto.

Operazioni: piano di controllo e piano dati

È possibile eseguire due tipi di operazioni in Azure: operazioni del piano di controllo e operazioni del piano dati. Usare il piano di controllo per gestire le risorse nella sottoscrizione. Usare il piano dati per accedere alle funzionalità esposte da una risorsa.

Ad esempio, si usa un'operazione del piano di controllo per creare una macchina virtuale, ma si usa un'operazione del piano dati per connettersi alla macchina virtuale usando Remote Desktop Protocol (RDP).

Piano di controllo

Quando si invia una richiesta da uno strumento, un'API o un Software Development Kits (SDKs) di Azure, Resource Manager riceve, autentica e autorizza la richiesta. Quindi invia la richiesta al provider di risorse di Azure, che accetta l'azione richiesta. Poiché tutte le richieste vengono gestite usando la stessa API, i risultati e le funzionalità risultano coerenti in tutti i vari strumenti disponibili in Azure.

La figura seguente illustra il ruolo di Resource Manager nella gestione delle richieste di Azure:

Diagramma che mostra come Azure Resource Manager accetta richieste da tutti i client e le librerie di Azure.

Tutte le richieste di operazioni del piano di controllo vengono inviate a un URL di Resource Manager. Ad esempio, l'operazione di creazione o aggiornamento per le macchine virtuali è un'operazione del piano di controllo. Questo è l'URL della richiesta per questa operazione:

PUT https://management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/virtualMachines/{virtualMachineName}?api-version=2022-08-01

Il piano di controllo comprende quali risorse devono essere create e quali sono già presenti. Resource Manager comprende la differenza tra le richieste e non crea risorse identiche né elimina le risorse esistenti, anche se esistono modi per eseguire l'override di questo comportamento.

Piano dati

All'avvio di un'operazione del piano dati, le richieste vengono inviate a un endpoint specifico nella sottoscrizione di Azure. Ad esempio, l'operazione Rileva lingua in Servizi di Azure AI è un'operazione del piano dati perché l'URL della richiesta è:

POST https://eastus.api.cognitive.microsoft.com/text/analytics/v2.0/languages

Le funzionalità di Resource Manager, ad esempio il controllo di accesso e i blocchi, non sempre si applicano alle operazioni del piano dati. Ad esempio, un utente potrebbe non avere le autorizzazioni per gestire una macchina virtuale usando il piano di controllo, ma può accedere al sistema operativo.

Che cosa sono i modelli di Azure Resource Manager?

I modelli di Azure Resource Manager sono file che definiscono l'infrastruttura e la configurazione per la distribuzione. Quando si scrive un modello ARM, si adotta un approccio dichiarativo al provisioning delle risorse. Questi modelli descrivono ogni risorsa nella distribuzione, ma non descrivono come distribuire le risorse. Quando si invia un modello a Resource Manager per la distribuzione, il piano di controllo può distribuire le risorse definite in modo organizzato e coerente. Nell'unità precedente sono state illustrate le differenze tra il codice imperativo e il codice dichiarativo.

Perché usare i modelli ARM?

L'uso dei modelli ARM, JSON o Bicep, offre numerosi vantaggi per il provisioning delle risorse.

  • Risultati ripetibili: i modelli ARM sono idempotenti, ovvero è possibile distribuire ripetutamente lo stesso modello e ottenere lo stesso risultato. Il modello non duplica le risorse.

  • Orchestrazione: quando viene inviata una distribuzione di modelli a Resource Manager, le risorse nel modello vengono distribuite in parallelo. Questo processo consente di completare le distribuzioni più velocemente. Resource Manager orchestra queste distribuzioni nell'ordine corretto se una risorsa dipende da un'altra.

  • Anteprima: lo strumento di analisi di simulazione, disponibile in Azure PowerShell e nell'interfaccia della riga di comando di Azure, consente di visualizzare in anteprima le modifiche apportate all'ambiente prima della distribuzione del modello. Questo strumento contiene informazioni dettagliate su eventuali creazioni, modifiche ed eliminazioni che vengono apportate dal modello.

  • Test e convalida: è possibile usare strumenti come il linter Bicep per verificare la qualità dei modelli prima della distribuzione. I modelli ARM inviati a Resource Manager vengono convalidati prima del processo di distribuzione. Questa convalida segnala eventuali errori nel modello prima del provisioning delle risorse.

  • Modularità: è possibile suddividere i modelli in componenti più piccoli e collegarli tra loro in fase di distribuzione.

  • Integrazione CI/CD: i modelli ARM possono essere integrati in più strumenti CI/CD, ad esempio Azure DevOps e GitHub Actions. È possibile usare questi strumenti per il controllo delle versioni dei modelli attraverso pipeline di controllo del codice sorgente e versione della build.

  • Estendibilità: con gli script di distribuzione, è possibile eseguire script Bash o PowerShell dall'interno dei modelli ARM. Questi script eseguono attività, ad esempio operazioni del piano dati, durante la distribuzione. Attraverso l'estendibilità, è possibile usare un singolo modello ARM per distribuire una soluzione completa.

Modelli JSON e Bicep

Attualmente sono disponibili due tipi di modelli ARM: modelli JSON e modelli Bicep. JavaScript Object Notation (JSON) è un formato di file a standard aperto che può essere usato da più linguaggi. Bicep è un nuovo linguaggio specifico di dominio sviluppato di recente per creare modelli ARM usando una sintassi più semplice. È possibile usare uno dei due formati di modello per i modelli ARM e le distribuzioni di risorse.