Creare un pool condiviso di Data Science Virtual Machine

Questo articolo illustra come creare un pool condiviso di Data Science Virtual Machine (DSVM) per un team. L'uso di un pool condiviso offre vantaggi importanti:

  • Migliore utilizzo delle risorse
  • Condivisione e collaborazione più semplici
  • Gestione più efficace delle risorse DSVM

È possibile usare numerosi metodi e tecnologie per creare un pool di DSVM. Questo articolo è incentrato sui pool per le macchine virtuali (VM) interattive. Un'infrastruttura di calcolo gestita alternativa prevede l'elaborazione di Azure Machine Learning. Per altre informazioni, vedere Creare un cluster di calcolo.

Pool di VM interattive

Un pool di macchine virtuali interattive, condiviso da un intero team di intelligenza artificiale/data science, offre agli utenti un modo per accedere a un'istanza di DSVM disponibile, invece di avere un'istanza dedicata per ogni set di utenti. Questo approccio offre una migliore disponibilità e un utilizzo più efficace delle risorse.

Usare la tecnologia dei set di scalabilità di macchine virtuali di Azure per creare un pool di macchine virtuali interattivo. Usare i set di scalabilità per creare e gestire un gruppo di macchine virtuali identiche, con bilanciamento del carico e scalabilità automatica.

L'utente accede all'indirizzo IP o DNS del pool principale. Il set di scalabilità esegue automaticamente il routing della sessione su una DSVM disponibile nel set di scalabilità. Poiché gli utenti vogliono un ambiente coerente e familiare, indipendentemente dalla macchina virtuale a cui accedono, tutte le istanze della macchina virtuale nel set di scalabilità montano un'unità di rete condivisa. È simile a una condivisione File di Azure o a una condivisione NFS (Network File System). L'area di lavoro condivisa dell'utente viene in genere mantenuta nell'archivio file condiviso montato in ognuna delle istanze.

È possibile trovare un esempio di modello di Azure Resource Manager che crea un set di scalabilità con istanze di DSVM Ubuntu in GitHub. La stessa posizione ospita un esempio del file di parametri per il modello di Azure Resource Manager.

Specificare i valori per il file di parametri nell'interfaccia della riga di comando di Azure per creare il set di scalabilità dal modello di Azure Resource Manager:

az group create --name [[NAME OF RESOURCE GROUP]] --location [[ Data center. For eg: "West US 2"]
az deployment group create --resource-group  [[NAME OF RESOURCE GROUP ABOVE]]  --template-uri https://raw.githubusercontent.com/Azure/DataScienceVM/master/Scripts/CreateDSVM/Ubuntu/dsvm-vmss-cluster.json --parameters @[[PARAMETER JSON FILE]]

Questi comandi presuppongono di avere:

  • Copia del file di parametri con i valori specificati per l'istanza del set di scalabilità
  • Numero di istanze di macchine virtuali
  • Puntatori alla condivisione File di Azure
  • Credenziali per l'account di archiviazione che verrà montato in ogni macchina virtuale

I comandi fanno riferimento localmente al file di parametri. È anche possibile passare parametri inline o richiederli nello script.

Il modello precedente abilita la porta JupyterHub e SSH dal set di scalabilità front-end al pool back-end delle DSVM Ubuntu. Gli utenti possono accedere alla macchina virtuale in una shell sicura (SSH) o in JupyterHub nel modo normale. Dal momento che è possibile aumentare o ridurre in modo dinamico il numero di istanze di VM, ogni stato deve essere salvato nella condivisione di File di Azure montata. È possibile usare lo stesso approccio per creare un pool di DSVM Windows.

Anche lo script che monta la condivisione di File di Azure è disponibile nel repository Azure DataScienceVM in GitHub. Lo script monta la condivisione di File di Azure nel punto di montaggio specificato nel file dei parametri. Lo script crea anche collegamenti simbolici all'unità montata nella home directory dell'utente iniziale. Una directory del notebook specifica dell'utente nella condivisione File di Azure è collegata tramite software alla $HOME/notebooks/remote directory, in modo che gli utenti possano accedere, eseguire e salvare i notebook di Jupyter. È possibile usare la stessa convenzione quando si creano più utenti nella macchina virtuale per puntare l'area di lavoro di Jupyter di ogni utente alla condivisione File di Azure.

I set di scalabilità di macchine virtuali supportano la scalabilità automatica. È possibile impostare regole su quando creare più istanze e quando ridurre le istanze. Ad esempio, è possibile ridurre fino a zero istanze per risparmiare sui costi di utilizzo dell'hardware cloud quando le macchine virtuali non vengono usate affatto. Le pagine della documentazione dei set di scalabilità di macchine virtuali forniscono passaggi dettagliati per la scalabilità automatica.

Passaggi successivi