Resource Manager: come funziona il nuovo modello di gestione delle risorse di Azure
Resource Manager è il nuovo approccio per gestire le singole risorse che appartengono a un intero servizio erogato in Microsoft Azure. Fondamentale è capirne le potenzialità per gestire al meglio un insieme di risorse che nel tempo può diventare molto ricco e arduo da gestire.
Un ringraziamento all’autore:
Introduzione
Quando configuriamo la nostra soluzione di Infrastructure-as-a-Service su Microsoft Azure generalmente creiamo un account di storage dove mettere all’interno le macchine virtuali ed una rete virtuale, oppure se vogliamo far girare un'applicazione web creiamo la Web App ed il database da associare all'applicazione.
Nel vecchio portale di Microsoft Azure (https://manage.windowsazure.com) tutti i componenti che sono interdipendenti ci appaiono separati e poi sta a noi ricordarne le dipendenze. Per questo motivo nel nuovo portale di Azure, raggiungibile all'indirizzo https://portal.azure.com, è stato adottato il modello basato su Resource Manager.
Tramite Resource Manager abbiamo la possibilità di raggruppare tutte le risorse e distribuirle, aggiornarle o anche eliminarle in un'unica operazione. Se poi ci serviamo anche di template basati su JSON il delivery delle nostre applicazioni è enormemente semplificato e se ad esempio vogliamo ricostruire in un ambiente di testing o di staging la nostra infrastruttura di produzione, l'operazione risulta molto più semplice.
I vantaggi offerti da Resource Manager sono numerosi:
· Possiamo distribuire, gestire e monitorare tutte le risorse della nostra soluzione come un gruppo, anziché gestirle singolarmente.
· Possiamo, utilizzando dei template, ripetere la creazione dell'infrastruttura tutte le volte che vogliamo.
· Possiamo applicare dei tag alle risorse utilizzate, in modo tale da organizzarle logicamente.
· Possiamo controllare in maniera granulare l'utilizzo delle risorse del Cloud pubblico, sia dal punto di vista dei costi che dal punto di vista della gestione, implementando il controllo di accesso basato sui ruoli (RBAC) che è disponibile sul nuovo portale di Microsoft Azure.
Il modo migliore per gestire la nostra applicazione è l’utilizzo dei Resource Groups. Un Resource Group è un contenitore all’interno del quale raggruppiamo logicamente le risorse, che da quel momento in poi verranno gestire con lo stesso ciclo di management (creazione, aggiornamento, modifica, eliminazione). Le risorse possono anche essere disponibili in Regioni di Microsoft Azure differenti e possono essere collegate tra di loro quando devono interagire.
Differenze tra i due deployment model: Resource Manager vs Service Management
Ci sono delle differenze sostanziali tra il nuovo modello Resource Manager (ARM) ed il modello classic chiamato Service Management (ASM) e occorre ricordare che i due modelli non sono completamente compatibili tra di loro. Questo è un punto chiave da tenere in considerazione nel momento in cui cominciate a lavorare con il nuovo modello ARM.
Vi consiglio di dare un’occhiata alla lista dei servizi che sono stati già migrati ad ARM al link https://azure.microsoft.com/en-us/documentation/articles/resource-manager-supported-services/ , considerando che Microsoft sta continuando a migrare gli altri servizi e nei prossimi mesi saranno resi disponibili.
Io vi consiglio di creare le nuove risorse con il modello di Resource Manager e se possibile ricreare le vecchie risorse che state utilizzando. Microsoft utilizzerà ARM per implementare le nuove funzionalità di Azure, ma vi posso tranquillizzare sul fatto che al momento non ci sono piani per dismettere il vecchio modello ASM, che continuerà a funzionare.
Creazione di una nuova macchina virtuale
Se volete creare una nuova macchina virtuale, un nuovo account per lo storage e una nuova rete virtuale nel nuovo portale di Azure http://portal.azure.com vi verrà sempre chiesto che tipo di modello di deployment utilizzare e avrete la possibilità di scegliere tra Resource Manager e Classic, come mostrato in figura.
Terminata la procedura di creazione della VM avremo una schermata di riepilogo, con l’elenco delle risorse che verranno create.
Durante il wizard ho deciso di creare un nuovo Resource Group chiamato NuovoResourceGroup (wow che fantasia!). Nel Resource Group sono presenti tutte le risorse utilizzate dalla VM (rete virtuale, storage, nome pubblico, ecc.) e questo ne semplifica di fatto la gestione.
Ci sono alcune considerazioni da tenere a mente quando lavorate con le machine virtuali:
- Le reti virtuali create con ARM e ASM sono diverse. Non è possibile quindi aggiungere una macchina creata in modalità Classic ad una rete creata con la modalità Resource Manager
- Le macchine virtuali create con ASM non devono essere per forza collegate ad una rete virtuale, a differenza di quelle create con ARM
- Non è possibile utilizzare storage account create con ASM per metterci all’interno macchine da gestire con ARM
Se non abbiamo più bisogno della VM possiamo cancellare l’intero Resource Group e con esso tutte le risorse associate.
Utilizzo di un template JSON
Uno dei punti di forza di ARM è l’utilizzo di template per la creazione di una o più macchine virtuali. Sul sito https://github.com/Azure/azure-quickstart-templates nella Quick Start Gallery trovate una serie di template già pronti per realizzare le vostre infrastrutture. Cliccando su uno dei template esistenti avrete la possibilità di usare il pulsante Deploy to Azure che vi faciliterà il deployment della configurazione scelta all’interno del vostro tenant. Fantastico!
Ovviamente è possibile modificare il template ed aggiungere dei parametri a nostro piacimento. Il file JSON è facilmente editabile con un qualsiasi text editor.
Conclusioni
I benefici introdotti tramite Azure Resouce Manager sono davvero notevoli e semplificano di fatto la gestione delle risorse in Microsoft Azure, permettendo all’amministratore di avere un controllo maggiore, di gestirne gli accessi e le autorizzazioni, di automatizzare la creazione delle infrastrutture.
Per ulteriori approfondimenti vi rimando alla puntata di #TecHeroes - Resource manager e Virtual Machine v2 https://channel9.msdn.com/Shows/TecHeroes/TecHeroes-Resource-manager-e-Virtual-Machine-v2