Överväganden för plattformsautomatisering och DevOps för Azure Virtual Desktop
Azure Virtual Desktop är en hanterad tjänst som tillhandahåller ett Microsoft-kontrollplan för din skrivbordsvirtualiseringsmiljö.
Den här artikeln fokuserar på de operativa uppgifter som du behöver för att köra en Azure Virtual Desktop-miljö. Du kan tillämpa varje rekommendation i den här artikeln individuellt. Du behöver inte implementera alla rekommendationer för att automatisering ska vara värt besväret.
Utformningsbeaktanden
Granska följande överväganden när du planerar och utformar din Azure Virtual Desktop-miljö.
Integrera med DevOps
Automation behöver inte betyda integrering med DevOps, men integreringen erbjuder många fördelar. Att automatisera byggprocessen för din gyllene avbildning är värt investeringen av flera skäl:
- När du använder en DevOps-pipeline kan du hantera automationsflödet bättre.
- Du kan få rapporter och aviseringar om distributioner från en DevOps-pipeline.
- Du kan konfigurera din pipeline för att integrera med testramverk och skapa godkännandegrindar för steg i automatiseringsprocessen.
- Du kan starta pipelines från många fördefinierade händelser, till exempel lanseringen av en ny galleriavbildning, ett program eller ett angivet schema.
- När du automatiserar skapandet av värdpoolen är det enkelt att flytta metadata för värdpoolen till nya geografiska platser när nya platser görs tillgängliga.
Infrastruktur som kod
När du går mot att använda DevOps-metoder måste du välja ett verktyg för att distribuera dina Azure-resurser. Det finns två olika kategorier av IaC-verktyg. Det föredragna alternativet är ett deklarativt IaC-verktyg.
Azure tillhandahåller interna alternativ med ARM-mallar och Azure Bicep.
Du kan också hitta IaC-verktyg från tredje part, till exempel HashiCorps Terraform.
Poolat jämfört med personligt
När din organisation skalar ut sin miljö faller merparten av arbetsbelastningen under en poolkonfiguration snarare än en personlig konfiguration.
Personliga konfigurationer är ofta dyrare att köra än poolkonfigurationer. De är lämpliga för specifika arbetsbelastningsanvändare som utvecklare som vanligtvis behöver utökade behörigheter. Om du kör värdpooler i personligt läge kan du försöka underhålla datorerna som du underhåller dina fysiska skrivbord så att du minskar mängden verktyg som krävs i din miljö.
Poolkonfigurationer är de mest populära för skrivbordsvirtualisering, vilket är anledningen till att de är i fokus för den här artikeln. Poolmiljöer måste uppdateras på ett annat sätt än traditionella miljöer. Uppdatera dina virtuella datorer från en guldbild i rätt takt för din organisation (vanligtvis var 1–3:e månad). Om din organisation är mycket automatiserad kanske du kan öka kadensen till varje vecka eller till och med varje natt om det behövs.
Skapa bild
När du skalar upp din Azure Virtual Desktop-miljö skapar du en värdpool från din guldavbildning, som du helst skapar genom en automatiserad process.
Du kan också använda en byggchecklista för att skala upp. Om du har en stor miljö bör checklisteprocessen bara vara en del av din första dev/test-konfiguration. Ju mer du automatiserar skapandet av guldbilder, desto mer säker kan du vara i noggrannheten i din bygg- och miljöstabilitet.
Vi rekommenderar inte att du använder din befintliga avbildning för att skapa en virtuell dator som du uppdaterar med nya program och konfigurationsändringar och sedan avbildar för användning som din "nya" guldavbildning. Att upprätthålla det här scenariot innebär betydande risker och är en viktig faktor i att skrivbordsvirtualiseringsmiljöer blir statiska och bräckliga.
Det finns många automatiseringsverktyg för att skapa guldbilder, inklusive Packer-processen som vi beskriver senare i den här artikeln. Använd den verktygsuppsättning som passar bäst för din organisation. Oavsett vilka verktyg du väljer kan du automatisera så mycket av din guldavbildning som möjligt så att du enklare kan underhålla din Azure Virtual Desktop-miljös hälsa.
Programinstallation
Program kan göras tillgängliga för användarna på två sätt: installerade i avbildningen eller levereras dynamiskt per användare.
Program som installeras i avbildningen bör vara universella för dina användare och en del av processen för att skapa automatiserade avbildningar. Avbildningsinstallerade program kan innehålla säkerhetsprodukter och Microsoft 365-paketet.
Program som levereras dynamiskt per användare bör innehålla allt annat som kräver en mer flexibel metod. Dynamiskt levererade program kan innehålla program som är begränsade till en specifik grupp och program som inte är kompatibla med andra program.
Språkdistribution
När dina Azure Virtual Desktop-miljöer börjar skalas ut kan du behöva lokalisera avbildningar till det interna språket för dina användare. Du kan börja från det lokala språket om du vill, eller så kan du lägga till fler språk i avbildningen i bygget. Tänk på det här kravet när du väljer basavbildningen. Den föroptimerade Windows 10-galleribilden, till exempel både med och utan Microsoft 365, tillhandahålls endast på engelska i USA (en-US).
Kommentar
Om du använder Windows 10 Enterprise-flera sessioner kan du inte skapa det med ett annat språk. I det här fallet måste du anpassa den angivna galleribilden. Om du vill anpassa den befintliga galleribilden en-US installerar du de ytterligare språken innan du installerar andra program.
Distributionsplatser
Azure Virtual Desktop ger större frihet kring den geografiska placeringen av dina värdpooler än vad traditionella skrivbordsmiljöer gör. Den här friheten finns eftersom alla Azure-platser stöder Azure Virtual Desktop. Undvik att skapa virtuella datorer från en bild i ett wan-nätverk (Wide Wide Area Network) genom att göra din guldbild tillgänglig på var och en av samma platser som dina användare.
Uppdateringar av värdpoolens guldbild
Det finns två sätt att uppdatera den guldfärgade avbildningen som dina virtuella datorer i en viss värdpool baseras på.
Metod ett:
- Distribuera en andra värdpool och klipp sedan över användare till den nya värdpoolen när du är redo.
- Gör den gamla värdpoolen tillgänglig för om en återställning behövs.
- Du kan ta bort den gamla värdpoolen när din organisation är övertygad om att den nya värdpoolen fungerar korrekt.
Metod två:
- Ange att dina befintliga virtuella datorer ska tömmas i värdpoolen.
- Distribuera nya virtuella datorer från din uppdaterade guldbild till samma värdpool.
- Var noga med att inte nå resursbegränsningar eller API-begränsningsgränser när du fördubblar antalet virtuella datorer i en enda värdpool.
Designrekommendationer
Granska följande rekommendationer när du utformar organisationens Azure Virtual Desktop-miljö.
Källkodshantering
Vi rekommenderar att du använder Git för att hantera källkod och hålla en enkel förgreningsstrategi. När du använder Git för din miljö:
- Håll git-lagringsplatsen och Azure DevOps-projektet privata om inte företagets princip anger att lagringsplatserna måste vara offentliga.
- Initiera lagringsplatsen med en README-fil så att du kan börja fylla i information om projektet.
- Ändra dina projektbehörigheter så att andra teammedlemmar får åtkomst.
- Anta en grundläggande arbetsuppgiftsprocess för att utveckla pipelinen och effektivisera dina arbetsbelastningar.
- Du bör minst underhålla två lagringsplatser: en lagringsplats för att hantera dina guldavbildningsversioner och en annan lagringsplats för att hantera dina Azure Virtual Desktop-distributioner.
Pipelines
Distributionssystemet för pipelinen styrs av vilket källkodshanteringssystem du väljer.
Om din organisation har standardiserats på Azure DevOps använder du Azure Pipelines. Om din organisation har standardiserats på GitHub använder du GitHub Actions. Båda alternativen ger möjlighet att distribuera en lokalt installerad agent i nätverket, vilket har flera fördelar, bland annat:
- Ersättning för längre byggtider
- Möjlighet att komma åt resurser i nätverket
Gate distributionspipelines så att de automatiskt kan utlösas för att distribueras till en valideringsvärdpool, men inte automatiskt skickas till din produktionsvärdpool utan uttryckligt godkännande.
Variabler och Azure Key Vault
Använd variabelgrupper när du arbetar i Azure Pipelines.
- Med variabelgrupper kan du ha repeterbara parametrar i dina pipelines, till exempel hemligheter och filplatser.
- Variabler i variabelgrupper kan lagras som nyckel/värde-par, men den rekommenderade metoden är Länka en variabelgrupp till ett Azure Key Vault för att hämta hemligheter för användning i distributionspipelinen.
Skapa Azure Virtual Desktop-avbildningar
Använd tjänsten Azure Image Builder (AIB) för att automatisera bygg-, uppdaterings-, sysprep- och distributionsprocesserna för dina guldbilder. Den här tjänsten kan använda en basavbildning som stöds från Azure Marketplace för varje version för att säkerställa att du har de senaste uppdateringarna.
Kommentar
Azure Image Builder är för närvarande tillgängligt i utvalda regioner, men du kan distribuera avbildningar utanför dessa regioner.
Som en del av processen för att skapa guldbilder bör du överväga alla program som du behöver installera och avgöra om de kan installeras via skript. Kontrollera att du har programinstallationskommandon skriptade i PowerShell och har checkats in på din Git-lagringsplats. Om du inte kan ladda ned programinstallationsprogram via offentligt Internet kan du överväga att placera programmen i Azure Blob Storage. Om dina programinstallationsprocesser behöver hemligheter kan du överväga att placera dem i Azure Key Vault.
Information om hur du kommer igång med Azure Image Builder finns i Skapa en Azure Virtual Desktop-avbildning med Azure VM Image Builder och PowerShell
Om du vill anropa Azure Image Builder med HJÄLP av CI/CD-pipelines använder du antingen Azure Image Builder Service DevOps-uppgiften för Azure Pipelines eller åtgärden Skapa azure virtual machine image för GitHub Actions.
HashiCorp Packer är ett alternativ med öppen källkod. Den erbjuder samma funktioner som Azure Image Builder (som bygger på HashiCorp Packer), inklusive möjligheten att distribuera till ett Azure Compute-galleri.
Mer information om Packer finns på Packer-webbplatsen.
Packer-metoden har följande förutsättningar:
- Azure DevOps-licensiering måste använda hela paketet med Packer-verktyg.
- Du måste tilldela en användare rätt roll i Microsoft Entra-ID.
- Du måste ge en deltagare i tjänstens huvudnamn åtkomst till prenumerationen.
- Du måste ha ett Azure Key Vault för att lagra hemligheter i, vilket ger tjänstens huvudnamn hemlighetshantering i åtkomstprincipen.
När du arbetar med Packer i distributionspipelinen:
- Installera Packer-verktyg på den byggagent som du använder i distributionspipelinen.
- Skapa ett valideringssteg i pipelinen för att verifiera att bygget fungerar.
- Efter valideringen klonar du valideringssteget och anger distributionsläget till Inkrementellt.
Andra överväganden för Packer-fillagring:
- Lagra dina Packer-filer och -bestämmelser på en central plats som Azure Pipelines kan komma åt. Vi rekommenderar att du använder Azure-filresurser för att lagra dessa filer på ett säkert sätt.
- Lagra åtkomstautentiseringsuppgifter för Azure Files i Key Vault. Du kan hämta åtkomstautentiseringsuppgifterna från Key Vault när du skapar med hjälp av pipelinevariabler.
- Lagra dessutom ditt Packer-filnamn och din kontonyckel i nyckelvalvet som är länkat till variabelgruppen i Azure DevOps. Pipelines har åtkomst till dessa autentiseringsuppgifter för att ladda ned Packer-filer till den virtuella dator som används för att skapa avbildningen.
- Lagra UNC-sökvägen som en variabel i azure DevOps-variabelgruppen.
Lagra Azure Virtual Desktop-avbildningar
Azure Compute Gallery-tjänsten är det enklaste sättet att skapa struktur och organisation kring dina guldbilder. Den ger:
- Global replikering av avbildningar till olika Azure-regioner.
- Kontrollera att du har distribuerat avbildningar i de regioner som Azure Virtual Desktop-sessionsvärdar (VM) distribuerar till.
- Versionshantering och gruppering av avbildningar för enklare hantering. Versionshantering och gruppering är användbara för att återställa Azure Virtual Desktop-värdpooler till tidigare avbildningsversioner.
- Högtillgängliga avbildningar med zonredundant lagringskonton (ZRS) i regioner som stöder tillgänglighetszoner. ZRS ger bättre motståndskraft mot problem i enskilda zoner.
- Azure Virtual Desktop-avbildningsdelning mellan prenumerationer och även mellan Microsoft Entra-klienter via rollbaserad åtkomstkontroll (RBAC).
- Distributionsskalning med avbildningsrepliker i varje region.
- Planera att distribuera en replik för varje 20 virtuella datorer som du planerar att distribuera samtidigt.
Mer information finns i översikten över Azure Compute Gallery-tjänsten.
Programinstallation i Azure Virtual Desktop-avbildningar
- För universella program som är installerade i din guldbild använder du metoden Packer som beskrevs tidigare i den här artikeln.
- App-V är för närvarande den metod som stöds från Microsoft för strömmande program per användare.
- Använd FSLogix-programmaskning för att dölja eller avslöja program eller plugin-program när dessa program inte fungerar bra med App-V.
- Använd MSIX-appanslutning när det är möjligt för att dynamiskt leverera program till användare och minska den totala storleken på din guldbild. Du kan också använda CI/CD-pipelines för att automatisera processen med att paketera program i MSIX-format. Mer information finns i översikten.
Distribuera språk i Azure Virtual Desktop-avbildningar
Microsoft har processer för att installera språkpaket manuellt eller automatiskt. Vi rekommenderar att du behåller så lite administrationskostnader som möjligt och automatiserar språkinstallationsprocessen.
Processen innebär att ladda ned ett PowerShell-skript till den virtuella dator som ska konverteras till din avbildning. Du hittar exempel på automatiseringsskript i Microsoft-dokumentationen. Om du följer rekommendationen för Packer-pipelines kan du inkludera den här processen som en extra bygguppgift.
Mer information om hur du installerar språkpaket i Windows 10 Enterprise-flera sessioner finns i Installera språkpaket på virtuella Windows 10-datorer i Azure Virtual Desktop.
Skapa Azure Virtual Desktop-värdpooler från Azure Compute Gallery-avbildningar
Använd en IaC-metod (Infrastructure as Code) för distribution och anpassning av Azure Virtual Desktop-resurser. De bör användas när det är möjligt för att säkerställa konsekvens i distributioner. ARM-mallar kan användas för att distribuera Azure Virtual Desktop-resurser som en del av en CI/CD-pipelineaktivitet. Du kan också använda dem när du använder Azure-portalen, Azure PowerShell eller Azure CLI.
Nedan visas en rekommenderad strategi för uppdatering av värdpoolen:
- Konfigurera en CI/CD-pipeline för att skapa och distribuera guldbilder till Azure Compute Gallery.
- Utse en valideringsvärdpool och distribuera nya sessionsvärdar till valideringsvärdpoolen med hjälp av CI/CD-pipelines.
- Testa automatiseringen med hjälp av en valideringsvärdpool.
- Tagga sessionsvärdarna med ett versionsnummer eller en avbildningsversion för att identifiera vilken version av avbildningen de kör.
- Innan du distribuerar verifierar du (eller kontrollerar) för att säkerställa att du har tillräcklig beräkningskvot i din prenumeration.
- Vid lyckad testning i valideringspoolen placerar du befintliga sessionsvärdar i avloppsläge – taggade virtuella datorer blir lätta att identifiera.
- Distribuera nya sessionsvärdar och tillåt användare att ansluta.
- Vid lyckad testning i produktion börjar du frigöra gamla sessionsvärdar för att inte debiteras några fler beräkningsavgifter och slutligen ta bort för att inte debiteras några fler hanterade diskavgifter.
- Borttagna sessionsvärdar tas bara bort från Azure. Datorobjekt kommer att finnas kvar i din AD, så dessa datorobjekt måste tas bort manuellt eller via skript.
Exemplet ovan visar en metod för avbildningsautomatisering med hjälp av Azure DevOps och en CI/CD-pipeline (kontinuerlig integrering och kontinuerlig leverans). Det här är en molnbaserad metod och erbjuder en mindre störande distribution av nya sessionsvärdar utan driftstopp. Det är viktigt att tänka på att du bör tänka på ökningen av antalet virtuella datorer när du fasar ut gamla bilder och tar nya avbildningar online.
Som nämnts ovan är Azure Compute Gallery en tjänst som hjälper dig att skapa struktur och organisation kring dina avbildningar. Dessa avbildningar kan refereras till i dina IaC-distributioner av dina Azure Virtual Desktop-sessionsvärdar. Tjänsten tillåter versionshantering, gruppering och replikering av bilder.
När du distribuerar dina sessionsvärdar med en ARM-mall eller Terraform rekommenderar vi att du använder resurs-ID:t för den avbildning som du skapade i galleriet som det anpassade käll-ID:t för den virtuella datorn. Avbildningen som du använder måste replikeras via Azure Compute Gallery-tjänsten till de Azure-regioner där du distribuerar dina Azure Virtual Desktop-värdpooler.
Nästa steg
Lär dig hur du distribuerar Azure Virtual Desktop med hjälp av acceleratorn för landningszoner för scenarier i företagsskala.