Creare DevTest Labs in Microsoft Azure

Azure DevTest Labs è un servizio che consente agli sviluppatori o ai tester di creare un ambiente nel Cloud che permetta di tenere sotto controllo i costi e allo stesso tempo permetta di effettuare tutti i test applicativi utilizzando sia macchine Windows che macchine Linux. Grazie all’uso di alcune policy è possibile tenere sotto controllo i costi ed il numero di macchine virtuali da utilizzare in ambiente di test. Molto spesso infatti mi è capitato di vedere alcuni laboratori ed alcuni POC che, dopo essere stati creati, vengono lasciati accesi e non vengono più gestiti. Se realizzati nel Cloud, questi lab possono diventare un vero incubo a fine mese, quando arriva la fattura da Microsoft.

Limitando invece il numero di macchine virtuali che un utente può creare, impostando l’avvio e lo spegnimento automatico e decidendo il numero massimo di VM che è possibile creare in ogni lab, si riescono sicuramente a gestire meglio le risorse che vengono messe a disposizione per il test.

Creazione del Dev Test Lab

La creazione del DevTest Lab è molto semplice. Loggatevi al portale Azure e decidete di creare un nuovo DevTest Lab. Inserite il nome del lab, la location ed il Resource Group da utilizzare ed eventualmente abilitate l’Auto-shutdown.

Figura 1: Creazione di un DevTest Lab

La creazione dura pochi secondi e tra le prime operazioni da fare c’è l’aggiunta delle macchine virtuali che volete rendere disponibili nel lab. Vi potete servire delle immagini presenti nel Marketplace oppure potete utilizzare le vostre immagini personalizzate.

Figura 2: Aggiunta delle macchine virtuali al DevTest Lab

Dopo aver cliccato sul pulsante Add potete scegliere le immagini disponibili nel Marketplace. In questo articolo ho deciso di utilizzare l’immagine di Windows Server 2016. Procedete alla configurazione del nome della VM, della username e della password per accedere alle VM. Configurate la dimensione delle VM e gli eventuali Artifacts da installare, cioè software aggiuntivi da mettere nella VM, come mostrato in figura. Gli Artifacts sono la parte più importante del lab, perché contengono gli script per configurare automaticamente le nostre VM e prepararle per il laboratorio. Ad esempio, potremmo creare uno script che installa un webserver o uno script che promuove la macchina a domain controller e riutilizzarlo tutte le volte che vogliamo ricreare le VM del laboratorio.

Figura 3: Installazione degli Artifacts nella VM

Configurate la VNET e la subnet a cui connettere la VM, l’eventuale indirizzo IP pubblico e scegliete il numero delle VM da creare, oltre a decidere se la VM deve essere Claimable. Le macchine virtuali verranno create e messe in un pool condiviso, a disposizione di chi ne abbia bisogno, e rimarranno spente fino a quando qualcuno non deciderà di effetuarne il Claim, cioè di accenderle ed utilizzarle.

Figura 4: Configurazione del numero delle VM a disposizione nel DevTest Lab

Subito dopo vedrete che le vostre macchine cominceranno ad essere create e configurate secondo le configurazioni che avete indicato.

Figura 5: Creazione delle macchine virtuali

Dopo aver atteso la creazione delle VM, è possibile andare nel nodo Claimable virtual machines e selezionare Claim machine, come mostrato in figura. L’operazione consiste nell’accensione (e quindi nel pagamento) della VM e la rende disponibile all’utilizzo.

Figura 6: Claim di una macchina virtuale (la macchina verrà accesa e resa disponibile agli utenti del DevTest Lab)

Figura 7: Solo le VM che sono state richieste vengono accese, le altre rimangono spente

Per poter permettere l’accesso al DevTest Lab e alle VM, potete cliccare sul nodo Configuration and Policies e successivamente selezionare Access Contro (IAM). Cliccando su Add è possibile aggiungere utenti e gruppi e dare loro il giusto ruolo. Nella figura sotto viene concesso ad un utente il permesso di DevTest Labs User

Figura 8: Aggiunta dei permessi di utilizzo del DevTest Lab

La seguente tabella mostra le operazioni che possono essere concesse agli utenti in base al loro ruolo:

Actions users in this role can perform DevTest Labs User Owner Contributor
Lab tasks
Add users to a lab No Yes No
Update cost settings No Yes Yes
VM base tasks
Add and remove custom images No Yes Yes
Add, update, and delete formulas Yes Yes Yes
Whitelist Azure Marketplace images No Yes Yes
VM tasks
Create VMs Yes Yes Yes
Start, stop, and delete VMs Only VMs created by the user Yes Yes
Update VM policies No Yes Yes
Add/remove data disks to/from VMs Only VMs created by the user Yes Yes
Artifact tasks
Add and remove artifact repositories No Yes Yes
Apply artifacts Yes Yes Yes

Tra le tante configurazioni disponibili, è sicuramente interessante la possibilità di accendere e spegnere automaticamente le VM del laboratorio, come mostrato in figura:

Figura 9: Accensione automatica delle VM nel DevTest Lab

Per maggiori informazioni sulle policy vi rimando alla lettura dell’articolo Gestire tutti i criteri per un lab in Azure DevTest Labs

Acceso alle VM del DevTest Lab

Una volta che il DevTest Lab è stato creato e configurato e dopo aver effettuato il Claim delle VM, vi potrete connettere alla VM cliccando sul nome e selezionando il pulsante Connect

Figura 10: Connessione alla VM disponibile nel DevTest Lab

Sicuramente interessante è la parte di gestione dei costi. La funzionalità di gestione dei costi consente di tenere traccia dei costi del lab e di visualizzare i costi stimati del mese in corso fino alla data odierna e la proiezione dell’ammontare dei costi a fine mese. È anche possibile impostare dei Target e dei limiti.

Figura 11: Proiezione dei costi mensili per le risorse utilizzate nel DevTestLab

Figura 12: impostazione del Target mensile per il nostro DevTEst Lab

Per maggiori informazioni sulla funzionalità di gestione dei costi vi rimando alla lettura dell’articolo Visualizzare la tendenza dei costi mensili stimati per il lab in Azure DevTest Labs

Conclusioni

L’utilizzo dei DevTest Lab permette alle aziende di tenere sotto controllo i costi per la gestione degli ambienti di test e di sviluppo e ne automatizza l’accensione e lo spegnimento, con un notevole risparmio economico ed una migliore gestione tramite la specifica di limiti e quote. Utilizzando i template personalizzati e gli Artifacts siamo in grado di velocizzare notevolmente la realizzazione del lab e di permettere dei test rapidi ed efficienti.

Buon lavoro!

Nic