/
/

Che cos’è Azure Resource Manager (ARM)?

di Team Ninja
what is Azure Resource Manager blog banner image

Riepilogo

Questo post del blog NinjaOne offre un elenco completo di comandi CMD di base e un’analisi approfondita dei comandi di Windows con oltre 70 comandi cmd essenziali sia per i principianti che per gli utenti avanzati. La guida si propone si piegare in modo pratico i comandi del prompt dei comandi per la gestione dei file, la navigazione nelle directory, la risoluzione dei problemi di rete, le operazioni su disco e l’automazione, con esempi reali per migliorare la produttività. Che tu voglia imparare i comandi cmd fondamentali o padroneggiare gli strumenti avanzati della CLI di Windows, questa guida ti aiuterà a utilizzare il Prompt dei comandi in modo più efficace.

Il cloud è diventato uno strumento indispensabile per le aziende e gli sviluppatori che vogliono far crescere le proprie attività, migliorare l’efficienza e proteggere i propri dati di valore. Microsoft Azure, una delle principali piattaforme di cloud computing, ha avuto un ruolo decisivo in questa trasformazione. Al centro delle capacità di gestione e distribuzione di Azure si trova un componente noto come Azure Resource Manager (ARM).
Azure Resource Manager offre un modo potente e unificato per gestire e organizzare le risorse all’interno di Azure, portando semplicità, coerenza e automazione nell’infrastruttura cloud. Per i responsabili dell’enterprise informatica e per gli MSP, capire che cos’è Azure Resource Manager è un passaggio fondamentale per sfruttare appieno il potenziale della piattaforma Azure.
In questo articolo faremo chiarezza su ARM, esaminandone i concetti fondamentali, le funzionalità e i vantaggi che offre. Questa guida ti aiuterà a ottimizzare le tue operazioni cloud e a costruire un futuro più efficiente, scalabile e agile.
Che cosa troverai in questo articolo:

  • Che cos’è Azure Resource Manager?
  • Gestione centralizzata e coerente delle risorse Azure
  • Template di Azure Resource Manager ed esempi
  • Vantaggi di Azure Resource Manager

Che cos’è Azure Resource Manager?

Azure Resource Manager, spesso abbreviato in ARM, è la piattaforma Microsoft per la gestione e l’organizzazione delle risorse all’interno del cloud Azure. Si tratta di un livello di gestione coerente che offre un modo strutturato ed efficiente per creare, distribuire, gestire e monitorare le risorse Azure. Tra queste risorse rientrano virtual machine, database, account di archiviazione, app web e altro ancora.
Incentrato sui gruppi di risorse: Uno dei concetti chiave di Azure Resource Manager è il “gruppo di risorse”. Un gruppo di risorse è un contenitore logico che raccoglie le risorse correlate a un’applicazione o a un carico di lavoro specifico. ARM ti permette di creare e gestire questi gruppi di risorse, semplificando l’organizzazione, la distribuzione e il monitoraggio delle risorse in modo coerente e controllato.
Linguaggio dichiarativo: ARM utilizza un linguaggio dichiarativo basato su JSON per definire l’infrastruttura e la configurazione delle tue risorse. In pratica, descrivi come vuoi che siano le tue risorse Azure e ARM si occupa dei dettagli di provisioning e gestione sottostanti, garantendo il mantenimento dello stato desiderato.

Il ruolo di Azure Resource Manager nell’architettura Azure

Azure Resource Manager ha un ruolo decisivo nella gestione centralizzata all’interno dell’ecosistema Azure. Funge da hub di controllo centralizzato e facilita il monitoraggio e la governance delle risorse Azure senza interruzioni. Questo pannello di controllo unificato consente di creare, modificare ed eliminare risorse in modo sincronizzato. Questo approccio semplifica la gestione di applicazioni complesse e di ambienti eterogenei, snellendo l’intero processo operativo.
Azure Resource Manager si integra inoltre con il sistema di controllo degli accessi in base al ruolo (RBAC) di Azure. Questa integrazione permette alle organizzazioni di esercitare un controllo granulare sulla gestione delle risorse all’interno della propria sottoscrizione Azure. Le funzionalità di RBAC sono determinanti per mantenere le misure di sicurezza di ARM e garantire la conformità, in particolare negli scenari con più utenti e più risorse.
Le dipendenze tra risorse entrano spesso in gioco quando si lavora con applicazioni complesse e multilivello in Azure. Azure Resource Manager tiene attentamente conto di queste dipendenze: garantisce che le risorse vengano create e aggiornate nella sequenza corretta, riducendo così al minimo gli errori di distribuzione e migliorando la coerenza delle risorse. Questa gestione accurata delle dipendenze è un aspetto prezioso del funzionamento di ARM.

Architettura e componenti di Azure Resource Manager

Nell’architettura di Azure Resource Manager, i componenti e i meccanismi coinvolti sono gli elementi costitutivi che rendono possibili le capacità di gestione delle risorse di Azure. Conoscere questi elementi architetturali è essenziale per sfruttare appieno il potenziale di ARM e ottimizzare la distribuzione, la gestione e la scalabilità delle risorse nel cloud Azure. In questa sezione esamineremo l’architettura e i componenti di Azure Resource Manager, analizzando i meccanismi interni che ne fanno un pilastro di una gestione e una distribuzione cloud efficienti.
Provider di risorse: Azure Resource Manager si basa sui provider di risorse, che hanno il compito di gestire tipi specifici di risorse Azure, tra cui virtual machine, archiviazione e rete. Questi provider si collegano alle API che ARM utilizza per interagire con tali risorse e gestirle.
Template: I template ARM sono file JSON che definiscono le risorse che vuoi distribuire, le loro configurazioni ed eventuali dipendenze reciproche. I template sono un elemento fondamentale dell’approccio infrastructure-as-code di ARM e ti permettono di definire la tua infrastruttura in modo coerente e sotto controllo di versione.
API di Resource Manager: L’API di Azure Resource Manager è l’interfaccia attraverso la quale gli utenti interagiscono con ARM. I responsabili IT possono creare, aggiornare e gestire risorse, gruppi di risorse e distribuzioni a livello programmatico. L’API è accessibile tramite il portale di Azure, Azure PowerShell, la CLI di Azure e diversi SDK.

Una gestione centralizzata e coerente delle risorse Azure

Come abbiamo visto, Azure Resource Manager è il punto di riferimento per la gestione unificata delle risorse Azure, un ruolo essenziale per un’orchestrazione efficiente delle operazioni cloud. Funzionando da hub, ARM semplifica la distribuzione e la gestione di un’ampia gamma di risorse distribuite su diverse sottoscrizioni Azure. Grazie al suo pannello di controllo centrale, ARM semplifica la creazione, la modifica e l’eliminazione delle risorse, eliminando la necessità di muoversi tra servizi e interfacce diversi.
Questa centralizzazione porta diversi vantaggi, primo tra tutti una maggiore efficienza operativa. ARM riduce notevolmente le difficoltà legate alla gestione di risorse eterogenee, offrendo un’interfaccia standardizzata per un approccio più lineare. Inoltre, rafforza il controllo garantendo che modifiche e operazioni vengano eseguite in modo coerente e sicuro, indipendentemente dal tipo di risorsa o dal servizio Azure.

La coerenza nella gestione delle risorse Azure con ARM

Gestione standardizzata delle risorse: La coerenza è un pilastro di una gestione efficiente delle risorse, e Azure Resource Manager eccelle proprio in questo. Grazie ai template ARM, gli utenti possono definire la propria infrastruttura in modo strutturato. Il risultato sono distribuzioni coerenti e ripetibili, con una riduzione al minimo degli errori di configurazione.
Gestione del ciclo di vita delle risorse: ARM mantiene lo stato desiderato delle risorse per tutto il loro ciclo di vita. Che si tratti della distribuzione iniziale, degli aggiornamenti o dell’eliminazione finale, ARM garantisce che queste operazioni vengano eseguite nella sequenza corretta e secondo configurazioni predefinite. Questa coerenza riduce il rischio di conflitti tra risorse e di difficoltà operative.

L’importanza dei gruppi di risorse in Azure

Come descritto sopra, i gruppi di risorse sono costrutti fondamentali nel framework di Azure Resource Manager e fungono da contenitori logici per la gestione delle risorse. Permettono di raggruppare queste risorse in base a progetti, applicazioni o ambienti distinti, semplificando così il lavoro di monitoraggio e gestione.
Un gruppo di risorse in Azure estende ulteriormente la propria utilità fungendo da perimetro per l’applicazione di policy, misure di controllo degli accessi e tag. Associando queste policy e autorizzazioni a livello di gruppo di risorse, le organizzazioni possono applicare in modo coerente le pratiche di governance su tutte le loro risorse. Questo è particolarmente utile per mantenere standard rigorosi di sicurezza, conformità ed efficienza operativa complessiva.

Template di Azure Resource Manager

Che cosa sono i template ARM?

I template di Azure Resource Manager (ARM) sono un modo efficace per definire e distribuire l’infrastruttura come codice in Azure. Sono file in formato JSON — un formato per lo scambio di dati — che descrivono lo stato desiderato delle tue risorse Azure, comprese proprietà, configurazioni e dipendenze, offrendo al tempo stesso un metodo di gestione delle risorse sotto controllo di versione.
I template ARM utilizzano un linguaggio dichiarativo: gli utenti specificano “come” vogliono che siano le loro risorse Azure, invece di indicare le istruzioni passo passo per crearle. Il servizio ARM gestisce poi automaticamente il provisioning, l’aggiornamento e l’eliminazione delle risorse, assicurando che l’infrastruttura resti coerente con il modello definito nel template.

Casi d’uso dei template di Azure Resource Manager

  • Distribuzioni scalabili e ripetibili: I template ARM sono preziosi negli scenari in cui un professionista IT o un provider di servizi gestiti deve distribuire più risorse in modo coerente e prevedibile. Che si tratti di configurare un nuovo ambiente, distribuire un’applicazione complessa o gestire l’infrastruttura nelle fasi di sviluppo, test e produzione, i template ARM rendono semplice garantire che ogni distribuzione sia identica, riducendo il rischio di deriva della configurazione ed errori.
  • Controllo di versione e collaborazione: Archiviando i template ARM in sistemi di controllo di versione come Git, gli amministratori di sistema possono tenere traccia delle modifiche con facilità. In questo modo la storia dell’infrastruttura resta ben documentata e più membri del team possono lavorare contemporaneamente al provisioning delle risorse senza conflitti.
  • Gestione efficiente delle risorse: I template ARM consentono una gestione efficiente delle risorse, così da sfruttare appieno le capacità di gestione delle risorse di Azure. Rendono semplice gestire l’intero ciclo di vita delle risorse, dal provisioning iniziale agli aggiornamenti fino alla dismissione, mantenendo sempre la configurazione e le dipendenze definite.

Esempi di template ARM di Azure

Esempio 1: distribuzione di una virtual machine

Un template ARM può essere usato per definire e distribuire virtual machine, inclusa la scelta del sistema operativo, le configurazioni della rete virtuale e le impostazioni di archiviazione. È particolarmente utile per creare configurazioni di virtual machine coerenti e automatizzate.
Questo template di esempio crea una semplice virtual machine Windows Server in Azure. Puoi personalizzarlo ulteriormente in base alle tue esigenze specifiche:
blocco di script json

{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"adminUsername": {
"type": "string",
"metadata": {
"description": "Admin username for the VM."
}
},
"adminPassword": {
"type": "securestring",
"metadata": {
"description": "Admin password for the VM."
}
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Compute/virtualMachines",
"apiVersion": "2020-06-01",
"name": "myVM",
"location": "East US",
"dependsOn": [],
"properties": {
"hardwareProfile": {
"vmSize": "Standard_DS2_v2"
},
"osProfile": {
"computerName": "myVM",
"adminUsername": "[parameters('adminUsername')]",
"adminPassword": "[parameters('adminPassword')]"
},
"storageProfile": {
"imageReference": {
"publisher": "MicrosoftWindowsServer",
"offer": "WindowsServer",
"sku": "2019-Datacenter",
"version": "latest"
},
"osDisk": {
"createOption": "FromImage"
}
},
"networkProfile": {
"networkInterfaces": [
{
"id": "[resourceId('Microsoft.Network/networkInterfaces', 'myVMVMNic')]"
}
]
}
}
}
],
"outputs": {
"adminUsername": {
"type": "string",
"value": "[parameters('adminUsername')]"
}
}
}

Che cosa fa questo template?

  • Definisce i parametri per il nome utente e la password dell’amministratore, permettendoti di specificare questi valori al momento della distribuzione della virtual machine.
  • Crea una risorsa virtual machine denominata “myVM” con configurazioni specifiche, come dimensione della virtual machine, immagine dell’OS e interfaccia di rete.
  • La sezione di output restituisce il nome utente dell’amministratore come riferimento dopo la distribuzione.

Esempio 2: configurazione di un’app web e di un database

I template ARM possono definire uno stack completo per un’applicazione web, comprese le app web, i database e i componenti di rete necessari. Questo semplifica la distribuzione delle applicazioni web e delle risorse di database associate.
Questo template di esempio mostra la creazione di una semplice applicazione web collegata a un database:
blocco di script json

{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"siteName": {
"type": "string",
"metadata": {
"description": "Name for the web app."
}
},
"sku": {
"type": "string",
"defaultValue": "Free",
"allowedValues": [
“Free”,
“Shared”,
“Basic”,
“Standard”,
“Premium”
],
"metadata": {
"description": "Pricing tier for the web app."
}
},
"databaseName": {
"type": "string",
"metadata": {
"description": "Name for the Azure SQL Database."
}
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Web/sites",
"apiVersion": "2021-06-01",
"name": "[parameters('siteName')]",
"location": "East US",
"properties": {
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', 'myAppServicePlan')]"
},
"dependsOn": [
“[resourceId(‘Microsoft.Web/serverfarms’, ‘myAppServicePlan’)]”
]
},
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2018-02-01",
"name": "myAppServicePlan",
"location": "East US",
"properties": {
"name": "myAppServicePlan",
"sku": {
"name": "[parameters('sku')]"
}
}
},
{
"type": "Microsoft.Sql/servers/databases",
"apiVersion": "2019-06-01",
"name": "[concat(parameters('siteName'), '/myDatabase')]",
"location": "East US",
"properties": {
"collation": "SQL_Latin1_General_CP1_CI_AS"
},
"dependsOn": [
“[resourceId(‘Microsoft.Sql/servers’, ‘mySqlServer’)]”
}
},
{
"type": "Microsoft.Sql/servers",
"apiVersion": "2019-06-01",
"name": "mySqlServer",
"location": "East US",
"properties": {
"administratorLogin": "dbAdmin",
"administratorLoginPassword": "your_password"
}
}
],
"outputs": {
"webAppName": {
"type": "string",
"value": "[parameters('siteName')]"
}
}
}

Che cosa fa questo template?

  • Definisce i parametri per il nome dell’app web, il livello tariffario e il nome del database.
  • Crea una risorsa app web e la associa a un livello tariffario specifico.
  • Crea una server farm (piano di servizio app) per l’app web.
  • Crea un database SQL di Azure e un server SQL per il database.
  • La sezione di output restituisce il nome dell’app web come riferimento dopo la distribuzione.

Esempio 3: infrastruttura di rete

I template ARM possono descrivere infrastrutture di rete complesse, come reti virtuali, subnet, gruppi di sicurezza e bilanciatori del carico, semplificando la configurazione degli ambienti di rete per progetti o applicazioni diversi.
Questo template di esempio distribuisce un’infrastruttura di rete, con reti virtuali, subnet, gruppi di sicurezza di rete (NSG) e un bilanciatore del carico:
blocco di script json

{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"virtualNetworkName": {
"type": "string",
"metadata": {
"description": "Name for the virtual network."
}
},
"subnetName": {
"type": "string",
"metadata": {
"description": "Name for the subnet."
}
},
"addressPrefix": {
"type": "string",
"metadata": {
"description": "Address prefix for the virtual network (e.g., '10.0.0.0/16')."
}
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Network/virtualNetworks",
"apiVersion": "2020-07-01",
"name": "[parameters('virtualNetworkName')]",
"location": "East US",
"properties": {
"addressSpace": {
"addressPrefixes": [
“[parameters(‘addressPrefix’)]”
]
}
}
},
{
"type": "Microsoft.Network/virtualNetworks/subnets",
"apiVersion": "2020-07-01",
"name": "[concat(parameters('virtualNetworkName'), '/', parameters('subnetName'))]",
"dependsOn": [
“[resourceId(‘Microsoft.Network/virtualNetworks’, parameters(‘virtualNetworkName’))]”
],
"properties": {
"addressPrefix": "10.0.0.0/24"
}
},
{
"type": "Microsoft.Network/networkSecurityGroups",
"apiVersion": "2020-07-01",
"name": "myNSG",
"location": "East US"
},
{
"type": "Microsoft.Network/loadBalancers",
"apiVersion": "2020-07-01",
"name": "myLoadBalancer",
"location": "East US",
"dependsOn": [
“[resourceId(‘Microsoft.Network/virtualNetworks’, parameters(‘virtualNetworkName’))]”,
“myNSG”
]
}
],
"outputs": {
"virtualNetworkName": {
"type": "string",
"value": "[parameters('virtualNetworkName')]"
}
}
}

Che cosa fa questo template?

  • Definisce i parametri per il nome della rete virtuale, il nome della subnet e il prefisso di indirizzo.
  • Crea una rete virtuale con lo spazio di indirizzi specificato.
  • Crea una subnet all’interno della rete virtuale.
  • Crea un gruppo di sicurezza di rete (NSG) denominato “myNSG” per le regole di sicurezza.
  • Crea un bilanciatore del carico denominato “myLoadBalancer”.

Vantaggi di Azure Resource Manager

Azure Resource Manager (ARM) offre numerosi vantaggi che ne fanno uno strumento prezioso per gestire e distribuire risorse nell’ambiente cloud di Azure. Vediamo i principali:

  • Azure Resource Manager funge da motore di orchestrazione centralizzata, semplificando la distribuzione e la gestione delle risorse Azure grazie a un piano di controllo unificato per creare, modificare ed eliminare le risorse in modo coerente.
  • I template ARM ti permettono di definire l’infrastruttura come codice per garantire lo stato desiderato delle risorse, favorendo così coerenza e prevedibilità nelle distribuzioni tra ambienti e fasi di progetto diversi.
  • ARM si integra senza difficoltà con il sistema di controllo degli accessi in base al ruolo (RBAC) di Azure, offrendo un controllo granulare degli accessi per mantenere sicurezza e conformità e garantire il rispetto del principio del privilegio minimo.
  • Azure Resource Manager semplifica la gestione delle dipendenze tra risorse, assicurando che vengano create e aggiornate nell’ordine corretto, riducendo al minimo gli errori e migliorando la coerenza quando si lavora con risorse interconnesse.
  • I template ARM facilitano le pratiche di Infrastructure as Code (IaC), favorendo collaborazione, controllo di versione e ripetibilità. I template archiviati in sistemi di controllo di versione come Git permettono di tracciare le modifiche nel tempo e supportano il lavoro di squadra, con configurazioni ben documentate.
  • I template sono inoltre scalabili ed efficienti, perché consentono provisioning, aggiornamento e dismissione delle risorse tra progetti e ambienti diversi. Questa scalabilità ottimizza l’utilizzo delle risorse e il rapporto costi-benefici.
  • ARM, insieme ad Azure Policy, offre un framework solido per implementare e applicare le pratiche di governance, garantendo che gli standard di sicurezza, conformità e operatività siano mantenuti in modo coerente su tutte le risorse Azure, con policy associate a livello di gruppo di risorse.

Potenzia e supporta ARM con NinjaOne

NinjaOne è la soluzione ideale per gli MSP e i professionisti IT che vogliono sfruttare al massimo il potenziale di Azure Resource Manager. Il nostro strumento RMM di livello mondiale offre gestione centralizzata delle risorse, automazione, applicazione delle policy di sicurezza e conformità, ottimizzazione dei costi, funzionalità collaborative e monitoraggio avanzato.
Con NinjaOne, i team IT ottengono informazioni utili, snelliscono i flussi di lavoro, rafforzano la sicurezza, ottimizzano l’utilizzo delle risorse e garantiscono operazioni efficienti, il tutto in un ambiente collaborativo e ben controllato.
Se vuoi provare NinjaOne, prenota una demo o inizia la tua prova gratuita di 14 giorni e scopri perché così tante organizzazioni e MSP scelgono NinjaOne come partner RMM!
Cerchi altri consigli di tendenza e guide complete? Consulta spesso il nostro blog e iscriviti a MSP Bento per ricevere informazioni utili, interviste e spunti direttamente nella tua casella di posta!

Ti potrebbe interessare anche

Pronto a semplificare le parti più complesse dell'IT?