Condividi tramite


Considerazioni sull'automazione della piattaforma e DevOps per Desktop virtuale Azure

Desktop virtuale Azure è un servizio gestito che fornisce un piano di controllo Microsoft per l'ambiente di virtualizzazione desktop.

Questo articolo è incentrato sulle attività operative necessarie per eseguire un ambiente Desktop virtuale Azure. È possibile applicare ogni raccomandazione in questo articolo singolarmente. Non è necessario implementare ogni raccomandazione per l'automazione per essere utile.

Considerazioni relative alla progettazione

Esaminare le considerazioni seguenti durante la pianificazione e la progettazione dell'ambiente Desktop virtuale Azure.

Integrazione con DevOps

L'automazione non deve significare l'integrazione con DevOps, ma l'integrazione offre molti vantaggi. L'automazione del processo di compilazione per l'immagine d'oro vale la pena investire per diversi motivi:

  • Quando si usa una pipeline DevOps, è possibile gestire meglio il flusso di automazione.
  • È possibile ricevere report e avvisi sulle distribuzioni da una pipeline DevOps.
  • È possibile configurare la pipeline per l'integrazione con i framework di test e creare controlli di approvazione per le fasi del processo di automazione.
  • È possibile avviare pipeline da numerosi eventi predefiniti, ad esempio il rilascio di una nuova immagine della raccolta, di una nuova applicazione o l'uso di una pianificazione impostata.
  • Quando si automatizza la creazione del pool di host, è facile spostare i metadati del pool di host in nuove posizioni geografiche quando vengono rese disponibili nuove posizioni.

Infrastruttura come codice

Quando si passa all'adozione delle procedure DevOps, è necessario scegliere uno strumento per distribuire le risorse di Azure. Esistono due diverse categorie di strumenti IaC. L'opzione preferita è uno strumento IaC dichiarativo.

Azure offre opzioni native con i modelli arm e Azure Bicep.

È anche possibile trovare strumenti IaC di terze parti, ad esempio Terraform di HashiCorp.

Confronto tra configurazione in pool e configurazione personale

Man mano che l'organizzazione aumenta il proprio ambiente, la maggior parte del carico di lavoro rientra in una configurazione in pool anziché in una configurazione personale .

Le configurazioni personali sono spesso più costose da eseguire rispetto alle configurazioni in pool. Sono adatti per utenti del carico di lavoro specifici come gli sviluppatori che in genere richiedono autorizzazioni elevate. Se si eseguono pool di host in modalità personale, provare a gestire i computer come si mantengono i desktop fisici in modo da ridurre la quantità di strumenti necessari nell'ambiente.

Le configurazioni in pool sono le più diffuse per la virtualizzazione desktop, motivo per cui sono incentrate su questo articolo. Gli ambienti in pool devono essere aggiornati in modo diverso rispetto agli ambienti tradizionali. Aggiornare le macchine virtuali (VM) da un'immagine gold alla frequenza corretta per l'organizzazione (in genere ogni 1-3 mesi). Se l'organizzazione è altamente automatizzata, potrebbe essere possibile aumentare la cadenza settimanale o anche notturna, se necessario.

Creazione di immagini

Quando si aumenta l'ambiente desktop virtuale Azure, si crea un pool di host dall'immagine gold, che si crea idealmente tramite un processo automatizzato.

È anche possibile usare un elenco di controllo di compilazione per aumentare le prestazioni. Se si dispone di un ambiente di grandi dimensioni, il processo di controllo deve far parte solo della configurazione iniziale di sviluppo/test. Più si automatizza la creazione dell'immagine gold, maggiore è la certezza di poter essere nell'accuratezza della compilazione e della stabilità dell'ambiente.

Non è consigliabile usare l'immagine esistente per creare una macchina virtuale che si aggiorna con nuove applicazioni e modifiche di configurazione e quindi acquisire per l'uso come immagine gold "nuova". La gestione di questo scenario comporta un rischio significativo ed è un fattore importante per gli ambienti di virtualizzazione desktop che diventano statici e fragili.

Sono disponibili molti strumenti di automazione per la creazione di immagini gold, incluso il processo Packer descritto più avanti in questo articolo. Usare il set di strumenti più appropriato per l'organizzazione. Indipendentemente dagli strumenti scelti, automatizzare la maggior parte possibile della creazione di immagini gold in modo da poter gestire più facilmente l'integrità dell'ambiente Desktop virtuale Azure.

Installazione dell'applicazione

Le applicazioni possono essere rese disponibili agli utenti in due modi: installate nell'immagine o distribuite dinamicamente per ogni utente.

Le applicazioni installate nell'immagine devono essere universali per gli utenti e una parte del processo di creazione automatica delle immagini. Le applicazioni installate con immagini possono includere prodotti di sicurezza e la suite Microsoft 365.

Le applicazioni distribuite dinamicamente per ogni utente devono includere tutto il resto che richiede un approccio più flessibile. Le applicazioni recapitate dinamicamente possono includere applicazioni limitate a un gruppo specifico e a applicazioni non compatibili con altre applicazioni.

Distribuzione delle lingue

Quando gli ambienti di Desktop virtuale Azure iniziano a aumentare il numero di istanze, potrebbe essere necessario localizzare le immagini nella lingua nativa per gli utenti. È possibile iniziare dalla lingua locale, se si preferisce, oppure aggiungere altre lingue all'immagine alla compilazione. Prendere in considerazione questo requisito durante la selezione dell'immagine di base. L'immagine della raccolta di Windows 10 pre-ottimizzata, ad esempio con e senza Microsoft 365, viene fornita solo in inglese Stati Uniti (en-US).

Nota

Se usi Windows 10 Enterprise multisessione, non puoi compilarlo usando un linguaggio diverso. In questo caso è necessario adattare l'immagine della raccolta specificata. Per adattare l'immagine esistente della raccolta in lingua en-US, installare le lingue aggiuntive prima di installare altre applicazioni.

Percorsi di distribuzione

Desktop virtuale Azure offre una maggiore libertà di posizionamento geografico dei pool di host rispetto agli ambienti desktop tradizionali. Questa libertà è data dal fatto che tutte le località di Azure supportano Desktop virtuale Azure. Evitare di creare macchine virtuali da un'immagine in un'ampia rete WAN (Wide Area Network) rendendo disponibile l'immagine gold in ognuna delle stesse posizioni degli utenti.

Aggiornamenti delle immagini finali dei pool di host

Esistono due modi per aggiornare l'immagine gold su cui si basano le macchine virtuali in un determinato pool di host.

Metodo 1:

  • Distribuire un secondo pool di host, quindi tagliare gli utenti al nuovo pool di host quando si è pronti.
  • Rendere disponibile il pool di host precedente per se è necessario un rollback.
  • È possibile rimuovere il pool di host precedente dopo che l'organizzazione è soddisfatta del corretto funzionamento del nuovo pool di host.

Metodo due:

  • Impostare le macchine virtuali esistenti per svuotare la modalità nel pool di host.
  • Distribuire nuove macchine virtuali dall'immagine gold aggiornata nello stesso pool di host.
  • Prestare attenzione a non raggiungere i vincoli delle risorse o i limiti di limitazione delle API quando si raddoppia il numero di macchine virtuali in un singolo pool di host.

Suggerimenti per la progettazione

Esaminare le raccomandazioni seguenti durante la progettazione dell'ambiente Desktop virtuale Azure dell'organizzazione.

Gestione del codice sorgente

È consigliabile usare Git per gestire il codice sorgente e mantenere una semplice strategia di diramazione. Quando si usa Git per l'ambiente:

  • Mantenere privato il repository Git e il progetto Azure DevOps, a meno che i criteri aziendali non specifichino che i repository devono essere pubblici.
  • Inizializzare il repository con un file README in modo da iniziare a compilare informazioni sul progetto.
  • Modificare le autorizzazioni del progetto per consentire l'accesso ad altri membri del team.
  • Adottare un processo di base degli elementi di lavoro per sviluppare la pipeline e ottimizzare i carichi di lavoro.
  • È necessario mantenere almeno due repository: un repository per la gestione delle compilazioni di immagini gold e un altro repository per la gestione delle distribuzioni di Desktop virtuale Azure.

Pipelines

Il sistema di distribuzione della pipeline è determinato dal sistema di gestione del codice sorgente scelto.

Se l'organizzazione ha standardizzato in Azure DevOps, usare Azure Pipelines. Se l'organizzazione ha standardizzato su GitHub, usare GitHub Actions. Entrambe le opzioni offrono la possibilità di distribuire un agente self-hosted all'interno della rete, con diversi vantaggi, tra cui:

  • Tolleranza per tempi di compilazione più lunghi
  • Possibilità di accedere alle risorse all'interno della rete

Controllare le pipeline di distribuzione in modo che possano essere attivate automaticamente per la distribuzione in un pool di host di convalida, ma non automaticamente inserite nel pool di host di produzione senza approvazione esplicita.

Variabili e Azure Key Vault

Usare i gruppi di variabili quando si lavora in Azure Pipelines.

Creare immagini di Desktop virtuale Azure

Usare il servizio Azure Image Builder (AIB) per automatizzare i processi di compilazione, aggiornamento, sysprep e distribuzione per le immagini gold. Questo servizio può usare un'immagine di base supportata da Azure Marketplace per ogni compilazione per assicurarsi di avere gli aggiornamenti più recenti.

Nota

Image Builder di Azure è attualmente disponibile all'interno di aree selezionate, ma è possibile distribuire immagini all'esterno di queste aree.

Come parte del processo di compilazione di immagini gold, prendere in considerazione tutte le applicazioni che è necessario installare e determinare se possono essere installate tramite script. Assicurarsi di disporre di comandi di installazione dell'applicazione con script in PowerShell e di cui è stato eseguito il commit nel repository Git. Se non è possibile scaricare i programmi di installazione delle applicazioni tramite Internet pubblico, è consigliabile inserire le applicazioni in Archiviazione BLOB di Azure. Se i processi di installazione dell'applicazione richiedono segreti, è consigliabile inserirli in Azure Key Vault.

Per iniziare a usare Image Builder di Azure, vedere Creare un'immagine di Desktop virtuale Azure con Image Builder di macchine virtuali di Azure e PowerShell

Per richiamare Image Builder di Azure usando pipeline CI/CD, usare l'attività DevOps del servizio Azure Image Builder per Azure Pipelines o l'azione Crea immagine macchina virtuale di Azure per GitHub Actions.

HashiCorp Packer è un'alternativa open source. Offre le stesse funzionalità di Azure Image Builder (basato su HashiCorp Packer), inclusa la possibilità di eseguire la distribuzione in una raccolta di calcolo di Azure.

Per altre informazioni su Packer, vedere il sito Web di Packer.

Il metodo Packer presenta i prerequisiti seguenti:

  • Le licenze di Azure DevOps devono usare la suite completa di strumenti Packer.
  • È necessario assegnare a un utente il ruolo Global Amministrazione istrator in Microsoft Entra ID.
  • È necessario concedere a un'entità servizio l'accesso collaboratore alla sottoscrizione.
  • È necessario disporre di un insieme di credenziali delle chiavi di Azure per archiviare i segreti, fornendo la gestione dei segreti dell'entità servizio nei criteri di accesso.

Quando si usa Packer nella pipeline di distribuzione:

  • Installare gli strumenti packer nell'agente di compilazione che verrà usato nella pipeline di distribuzione.
  • Creare una fase di convalida nella pipeline per verificare che la compilazione funzioni.
  • Dopo la convalida, clonare la fase di convalida e impostare la modalità di distribuzione su Incrementale.

Altre considerazioni per l'archiviazione file packer:

  • Archiviare i file packer ed effettuare il provisioning in una posizione centralizzata a cui Azure Pipelines può accedere. È consigliabile usare condivisioni file di Azure per archiviare questi file in modo sicuro.
  • Archiviare le credenziali di accesso per File di Azure in Key Vault. È possibile eseguire il pull delle credenziali di accesso da Key Vault durante la compilazione usando le variabili della pipeline.
  • Archiviare anche il nome del file packer e la chiave dell'account nell'insieme di credenziali delle chiavi collegato al gruppo di variabili in Azure DevOps. Le pipeline accedono a queste credenziali per scaricare i file packer nella macchina virtuale usata per creare l'immagine.
  • Archiviare il percorso UNC come variabile nel gruppo di variabili di Azure DevOps.

Archiviare immagini di Desktop virtuale Azure

Il servizio Raccolta di calcolo di Azure è il modo più semplice per creare struttura e organizzazione intorno alle immagini gold. Offre:

  • Replica globale delle immagini in aree di Azure diverse.
    • Assicurarsi di aver distribuito le immagini nelle aree in cui vengono distribuiti gli host di sessione di Desktop virtuale Azure.
  • Controllo delle versioni delle immagini e raggruppamento per la semplificazione della gestione. Il controllo delle versioni e il raggruppamento sono utili per eseguire il rollback dei pool di host di Desktop virtuale Azure alle versioni precedenti dell'immagine.
  • Immagini a disponibilità elevata con account di archiviazione con ridondanza della zona (ZRS) in aree che supportano le zone di disponibilità. L'archiviazione con ridondanza della zona offre una maggiore resilienza contro gli errori a livello di zona.
  • Condivisione di immagini di Desktop virtuale Azure tra sottoscrizioni e anche tra i tenant di Microsoft Entra, tramite il controllo degli accessi in base al ruolo( RBAC).
  • Scalabilità della distribuzione con repliche di immagini in ogni area.

Per altre informazioni, vedere panoramica del servizio Raccolta di calcolo di Azure.

Installazione di applicazioni nelle immagini di Desktop virtuale Azure

  • Per le applicazioni universali installate nell'immagine gold, usare il metodo Packer descritto in precedenza in questo articolo.
  • App-V è attualmente il metodo supportato da Microsoft per lo streaming di applicazioni per singolo utente.
  • Usare il mascheramento delle applicazioni FSLogix per nascondere o visualizzare applicazioni o plug-in quando tali applicazioni non funzionano correttamente con App-V.
  • Usa MSIX App Attach , dove possibile, per distribuire in modo dinamico le applicazioni agli utenti e ridurre le dimensioni complessive dell'immagine gold. È anche possibile usare pipeline CI/CD per automatizzare il processo di creazione di pacchetti di applicazioni nel formato MSIX. Per altre informazioni, vedere la panoramica.

Distribuire lingue nelle immagini di Desktop virtuale Azure

Microsoft prevede processi per l'installazione manuale o automatica dei Language Pack. È consigliabile mantenere il minor sovraccarico di amministrazione possibile e automatizzare il processo di installazione della lingua.

Il processo prevede il download di uno script di PowerShell nella macchina virtuale che verrà convertito nell'immagine. È possibile trovare script di automazione di esempio nella documentazione di Microsoft. Se si segue la raccomandazione per le pipeline Packer, è possibile includere questo processo come attività di compilazione aggiuntiva.

Per altre informazioni sull'installazione dei Language Pack in Windows 10 Enterprise multisessione, vedere Installare Language Pack nelle macchine virtuali Windows 10 in Desktop virtuale Azure.

Usare un approccio IaC (Infrastructure as Code) alla distribuzione e alla personalizzazione delle risorse di Desktop virtuale Azure. Devono essere usati quando possibile per garantire la coerenza nelle distribuzioni. I modelli arm possono essere usati per distribuire le risorse di Desktop virtuale Azure come parte di un'attività pipeline CI/CD. È anche possibile usarli quando si usa il portale di Azure, Azure PowerShell o l'interfaccia della riga di comando di Azure.

Di seguito è riportata una strategia di aggiornamento consigliata per il pool di host:

  • Configurare una pipeline CI/CD per compilare e distribuire immagini gold in Azure Compute Gallery.
  • Designare un pool di host di convalida e distribuire nuovi host di sessione nel pool di host di convalida usando pipeline CI/CD.
  • Testare l'automazione usando un pool di host di convalida.
  • Contrassegnare gli host di sessione con un numero di build o una versione dell'immagine per identificare la versione dell'immagine in esecuzione.
  • Prima di eseguire la distribuzione, convalidare (o controllare) per assicurarsi di disporre di una quota di calcolo sufficiente all'interno della sottoscrizione.
  • Al termine dei test nel pool di convalida, inserire gli host sessione esistenti in modalità di svuotamento. Le macchine virtuali con tag saranno facili da identificare.
  • Distribuire nuovi host di sessione e consentire agli utenti di connettersi.
  • Al termine dei test nell'ambiente di produzione, iniziare a deallocare gli host di sessione precedenti per non incorrere in costi di calcolo aggiuntivi e infine eliminare per non comportare costi aggiuntivi per i dischi gestiti.
  • Gli host di sessioni eliminate verranno rimossi solo da Azure. Gli oggetti computer rimarranno in Active Directory, quindi questi oggetti computer dovranno essere eliminati manualmente o tramite script.

L'esempio precedente illustra un metodo di automazione delle immagini usando Azure DevOps e una pipeline di integrazione continua e recapito continuo (CI/CD). Si tratta di un approccio nativo del cloud che offre un'implementazione meno dirompente dei nuovi host di sessione senza tempi di inattività. È importante notare che è consigliabile considerare l'aumento dei conteggi delle macchine virtuali man mano che si estraono le immagini precedenti e si portano online nuove immagini.

Come accennato in precedenza, La raccolta di calcolo di Azure è un servizio che consente di creare struttura e organizzazione intorno alle immagini. È possibile fare riferimento a queste immagini nelle distribuzioni IaC degli host di sessione di Desktop virtuale Azure. Il servizio prevede il controllo delle versioni, il raggruppamento e la replica delle immagini.

Quando si distribuiscono gli host di sessione con un modello arm o Terraform, è consigliabile usare l'ID risorsa dell'immagine creata nella raccolta come ID origine dell'immagine personalizzata della macchina virtuale. L'immagine in uso deve essere replicata tramite il servizio Azure Compute Gallery nelle aree di Azure in cui si distribuiscono i pool di host di Desktop virtuale Azure.

Passaggi successivi

Informazioni su come distribuire Desktop virtuale Azure usando l'acceleratore di zona di destinazione per scenari su scala aziendale.