Forum Discussion
Azure Virtual Desktop planning - a little guide (please don't underestimate planning)!
Dear Azure Virtual Desktop friends,
Again and again I encounter Azure Virtual Desktop infrastructures that were obviously poorly planned. Not only is performance poor, but security has been neglected and scalability is simply not possible. With such infrastructures, it is then simply impossible to get everything up and running again with a few adjustments.
For this reason, I have tried to create a possible planning guide in this article. Let's start with the following points:
Define objectives and requirements:
-> Determine the purpose of the Azure Virtual Desktop infrastructure
-> Identify the applications and resources required for end-users
-> Establish performance, availability, and security goals
-> Assess network connectivity and bandwidth requirements
https://learn.microsoft.com/en-us/azure/architecture/example-scenario/wvd/windows-virtual-desktop
https://azure.microsoft.com/en-us/products/virtual-desktop/assessment/
https://learn.microsoft.com/en-us/azure/architecture/example-scenario/wvd/windows-virtual-desktop
Assess existing infrastructure:
-> Evaluate current on-premises infrastructure and applications
-> Identify any potential compatibility issues or bottlenecks
-> Determine if any applications or services need to be migrated to Azure
https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/scenarios/wvd/migrate-assess
https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/scenarios/wvd/migrate-deploy
https://learn.microsoft.com/en-us/azure/virtual-desktop/proxy-server-support
https://learn.microsoft.com/en-us/azure/virtual-desktop/data-locations
Choose a deployment model:
-> Decide between a pooled or personal host pool
-> Determine the appropriate operating system (e.g., Windows 10 or Windows Server)
-> Select the necessary virtual machine sizes and configurations
https://learn.microsoft.com/en-us/azure/virtual-desktop/host-pool-load-balancing
https://learn.microsoft.com/en-us/windows-server/remote/remote-desktop-services/virtual-machine-recs
Design network connectivity:
-> Configure virtual networks and subnets within Azure
-> Set up VPN or ExpressRoute for hybrid connectivity (if required)
-> Implement network security groups and firewall rules to restrict traffic
-> Plan for load balancing and traffic management
https://learn.microsoft.com/en-us/azure/virtual-desktop/network-connectivity
https://learn.microsoft.com/en-us/windows-server/remote/remote-desktop-services/network-guidance
https://learn.microsoft.com/en-us/azure/firewall/protect-azure-virtual-desktop
https://learn.microsoft.com/en-us/azure/virtual-desktop/rdp-bandwidth
Plan for user profiles and data storage:
-> Choose between FSLogix, Azure Files, or other profile management solutions
-> Determine storage requirements and configure file shares
-> Implement data backup and recovery strategies
https://learn.microsoft.com/en-us/fslogix/how-to-install-fslogix
https://learn.microsoft.com/en-us/fslogix/tutorial-configure-profile-containers
https://learn.microsoft.com/en-us/fslogix/tutorial-configure-odfc-containers
https://learn.microsoft.com/en-us/azure/virtual-desktop/store-fslogix-profile
https://learn.microsoft.com/en-us/azure/virtual-desktop/fslogix-containers-azure-files
https://learn.microsoft.com/en-us/azure/storage/files/storage-files-identity-ad-ds-update-password
Design application delivery:
-> Decide on the application delivery method (e.g., RemoteApp, MSIx App Attach)
-> Package and test applications for compatibility
-> Set up application groups and assign them to appropriate users or user groups
-> Implement application lifecycle management and updates
https://learn.microsoft.com/en-us/azure/virtual-desktop/remote-app-streaming/overview
https://learn.microsoft.com/en-us/training/paths/m365-wvd/
https://learn.microsoft.com/en-us/azure/virtual-desktop/remote-app-streaming/custom-apps
https://learn.microsoft.com/en-us/azure/virtual-desktop/install-office-on-wvd-master-image
https://learn.microsoft.com/en-us/azure/virtual-desktop/teams-on-avd
https://learn.microsoft.com/en-us/azure/virtual-desktop/language-packs
https://learn.microsoft.com/en-us/windows/msix/overview
https://learn.microsoft.com/en-us/azure/virtual-desktop/what-is-app-attach
https://learn.microsoft.com/en-us/windows/msix/packaging-tool/create-app-package
Plan for identity and access management:
-> Integrate Azure Active Directory (AD) for user authentication and authorization
-> Configure Multi-Factor Authentication (MFA) for added security
-> Set up role-based access control (RBAC) to manage user permissions
https://learn.microsoft.com/en-us/azure/active-directory-domain-services/compare-identity-solutions
Estimate costs and optimize resources:
-> Calculate the expected infrastructure costs based on VM sizes, storage, and network usage
-> Evaluate licensing requirements for Azure Virtual Desktop and other services
-> Implement cost management and optimization strategies, such as auto-scaling and reserved instances
https://learn.microsoft.com/en-us/azure/virtual-desktop/prerequisites
https://learn.microsoft.com/en-us/azure/virtual-desktop/remote-app-streaming/total-costs
https://azure.microsoft.com/en-us/pricing/details/virtual-desktop/
https://azure.microsoft.com/de-de/pricing/reserved-vm-instances/
https://learn.microsoft.com/en-us/azure/virtual-machines/windows/hybrid-use-benefit-licensing
Develop a monitoring and management strategy:
-> Monitor the performance and health of the Azure Virtual Desktop environment using Azure Monitor and Log Analytics
-> Set up alerts and notifications for critical events or performance issues
-> Implement a patch management strategy to ensure OS and application updates
https://learn.microsoft.com/en-us/azure/virtual-desktop/insights
https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/scenarios/wvd/manage
https://learn.microsoft.com/en-us/azure/virtual-desktop/security-guide
https://learn.microsoft.com/en-us/azure/virtual-desktop/diagnostics-log-analytics
https://github.com/tomwechsler/Azure_Virtual_Desktop/blob/main/Scripte/WVD_Log_Analytics_KQL.ps1
Plan for disaster recovery and business continuity:
-> Design a backup and recovery strategy for user profiles, applications, and data
-> Implement redundancy and failover solutions for critical components
-> Test disaster recovery procedures and update them as needed
https://learn.microsoft.com/en-us/azure/virtual-desktop/disaster-recovery
https://learn.microsoft.com/en-us/azure/virtual-desktop/disaster-recovery-concepts
Once you have successfully worked through the planning, it is time to prepare the implmentation. Again, take enough time to work through the various items. This way, you are well on your way to successfully deploying an Azure Virtual Desktop infrastructure.
Prepare for implementation:
-> Create a detailed project plan with timelines and milestones
-> Assign roles and responsibilities to team members
-> Develop a testing and validation plan to ensure the infrastructure meets objectives and requirements
https://learn.microsoft.com/en-us/azure/virtual-desktop/getting-started-feature
Execute deployment and migration:
-> Deploy the Azure Virtual Desktop infrastructure according to the project plan
-> Migrate user profiles, applications, and data as needed
-> Test connectivity, performance, and functionality to ensure a successful migration
Conduct user training and support:
-> Develop training materials and resources to familiarize end-users with the new environment
-> Conduct training sessions for end-users and provide ongoing support
-> Establish a helpdesk or support process to address user issues and concerns
https://learn.microsoft.com/en-us/azure/virtual-desktop/users/
https://azure.microsoft.com/en-us/support
https://learn.microsoft.com/en-us/training/modules/m365-wvd-intro/
Monitor, manage, and optimize the environment:
-> Continuously monitor the Azure Virtual Desktop infrastructure for performance, availability, and security
-> Address any issues or concerns that arise during daily operations
-> Periodically review and optimize resources, costs, and configurations to improve the overall user experience
https://learn.microsoft.com/en-us/azure/virtual-desktop/disaster-recovery-concepts
https://learn.microsoft.com/en-us/azure/virtual-desktop/security-guide
It is absolutely clear to me that this is not an exhaustive list. However, I hope that this information will help you as a basis/start to successfully build an Azure Virtual Desktop infrastructure.
Thank you for taking the time to read this article.
Best regards, Tom Wechsler
P.S. All scripts (#PowerShell, Azure CLI, #Terraform, #ARM) that I use can be found on github! https://github.com/tomwechsler