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

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

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

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


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

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

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

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

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

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


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

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

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


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!

0 Replies