Nell’ambito di Azure Resource Manager (ARM), un “ARM template” (modello ARM) è un file che definisce l’infrastruttura e le risorse desiderate all’interno di un ambiente Azure utilizzando la Declarative syntax.
Un ARM template è scritto in formato JSON (JavaScript Object Notation) o YAML (YAML Ain’t Markup Language) e descrive le risorse da creare, configurare e distribuire, insieme alle relative proprietà e dipendenze. Il modello definisce l'intera topologia dell'applicazione o dell'infrastruttura da implementare, inclusi servizi, reti, macchine virtuali, database, account di archiviazione e altro ancora.
Un template ARM può essere utilizzato per automatizzare il provisioning e la gestione delle risorse in Azure. Attraverso l’uso di un template, è possibile definire l’intera infrastruttura come codice, consentendo una distribuzione consistente, prevedibile e ripetibile. Inoltre, i template ARM offrono vantaggi come il tracciamento delle modifiche, la gestione del ciclo di vita delle risorse e la possibilità di versionare e condividere il codice del modello.
Un esempio di un template ARM potrebbe includere la definizione di una rete virtuale, una macchina virtuale e un servizio di bilanciamento del carico, insieme alle relative configurazioni, come ad esempio gli indirizzi IP, le subnet, le immagini delle macchine virtuali e le porte di bilanciamento del carico.
Utilizzando uno strumento come Azure Portal, Azure CLI o PowerShell, è possibile distribuire un modello ARM nel proprio account Azure. Durante la distribuzione, il template viene interpretato da Azure Resource Manager, che crea e configura le risorse specificate nel modello. In caso di modifiche o aggiornamenti alle risorse, è possibile apportare modifiche al template e distribuirlo nuovamente per applicare le modifiche in modo coerente.
Complessivamente, gli ARM template offrono un modo potente per automatizzare e gestire l’infrastruttura e le risorse in Azure, consentendo una distribuzione coerente, scalabile e prevedibile delle applicazioni e dei servizi cloud.