Bulding VDI Solutions in Microsoft Azure and now with Windows Virtual Desktop

A couple of months back I wrote an article about building VDI Solutions in Microsoft Azure https://msandbu.org/building-vdi-solutions-in-azure-what-options-do-we-have/ and last week I was speaking about Windows Virtual Desktop at an event at Microsoft Norway, where my sessions is about our experience with Windows Virtual Desktop. Now my previous blogpost didn’t emphaize to much on WVD to I wanted to elaborate a bit on how WVD will fit in into the ecosystem and functionality and where it is lacking.

Now Windows Virtual Desktop itself ill discuss in a later part of this post. But building VDI or an End-user Computing platform in Azure, consists of multiple moving parts & components.depending on the size and complexity). Depending on what kind of services you want to use in Azure as well.

The Foundation

If you want an overview of what kind of functionality and services that you can utilize in Microsoft Azure, I recommend that you take a closer look at this Cloud Wars slidedeck that I made which shows an overview of the services that are available within Microsoft Azure (And also other Cloud platform) –> http://bit.ly/35zzTHa which can act as a foundation to understand what kind of services that are available within each of the cloud platforms.

Next you need to understand capabilities that are available from a EUC perspective, such as GPU, Automation options, storage options and such. Most of the vendors such as Citrix, VMware and CloudJumper has integrations with Microsoft Azure. Here is a clip from one of my earlier sessions on Citrix and Public Cloud

Much fo the content you can find here –> https://www.slideshare.net/mariussandbu/citrix-cloud-xl-running-ctirix-in-public-cloud (This is specifically around Citrix and support for public Cloud platforms)

Design and services

Then there are also some design questions that needs to be answered such as what kind of identity solution should I use? what kind of Storage Solution should I use? How to handle Office 365? and here is some material which might make desicions easier.

Azure NetApp Files: https://msandbu.org/getting-started-with-azure-netapp-files/
Azure AD Domain Serviceshttps://msandbu.org/things-you-need-to-consider-before-using-azure-ad-domain-services/
Azure AD Files: https://msandbu.org/getting-started-with-azure-ad-auth-with-azure-files/
Office 365 and planninghttps://msandbu.org/guide-to-deploying-office-365-in-rdsh-and-vdi-enviroment/ (It is important to remember that WVD does not provide full optimization of Teams and or Skype 4B yet, but this is currently being developed)

What about Windows Virtual Desktop?

A coupel of weeks ago I also wrote a bit about Windows Virtual Desktop and a breakdown of the components and architecture –> https://msandbu.org/windows-virtual-desktop-breakdown-of-architecture-and-current-status/ where I write briefly about some of the current challenges with Windows Virtual Desktop, but I want to expand upon that and also some of the options you have for solving those challenges.

Split responsbility model

First of WVD is essentially four components that are delivered and managed by Microsoft.

  • Broker
  • Gateway (Reverse TCP-Proxy)
  • Web Access
  • Diagnostics

Where we are responsible for backend servers the session hosts or VDI hosts. Now is is important that Microsoft currently has these services available in two regions, one in the US and one in West Europe, so this affects traffic and latency. Microsoft has created an assessment website which can be used to plan.


How do we do Image Provisioning?

With most EUC products such as VMware and Citrix they have built-in tools to handle image provisioning either with clones, mcs or pvs. Within WVD Microsoft does not provide tools to do image provisioning, therefore you need to solve this on another way. There are multiple ways that this can be done, you can of course using MDT or SCCM to build a fininshed image that you upload as a VHD and use as base for building up your sessions hosts or VDI, but when working with cloud there are also other options.

1: Use ARM/Terraform/Pulumi to build most of the core infrastructure such as virtual network, active directory, storage, monitoring and such.
2: Use Packer from Hashicorp to build a finished image. Packer is a tool that you can use to automate building a virtual machine image which you then can use within ARM or Terraform to build a set of session hosts. You have a sample guide here that you can use to build a fininshed image –> https://docs.microsoft.com/en-us/azure/virtual-machines/windows/build-image-with-packer

How do we do Monitoring and Patching?

With WVD you have a split responsibility model, where you are responsible for some of the services and Microsoft is responsible for the rest. Azure Monitor provides a good basis to do monitoring of virtual infrastructure, however just setting up Azure Monitor just gives you an empty shell and you need to build up your own logic, to get some instant insight you can also leverage Marcel Meurer’s own Log Analytics / Azure Monitor module to do monitoring of WVD/RDS/Citrix –> https://t.co/fMB9x6iQzI?amp=1

Now secondly since Microsoft is still responsible for some services, I recommend that you also setup monitoring of URL endpoints which are part of WVD. This can be done using Network Performance Monitoring as part of Azure Monitor against –>


How do we do Scaling?

As part of a cloud based deployment which WVD is, you should have the capabilities to ensure simple and easy scale up and scale down. Now with Citrix and VMware they have this as part of their service, WVD is not there yet. So there is a couple of ways that this can be done.

1: Azure Automation Runbook – Which can start and stop virtual machines based upon a schedule
2: WVD Scaling Script – Use the scaling script that Microsoft created to scale up and down instances. This however requires that you have a dedicated machine where you can run the script from –> https://docs.microsoft.com/en-us/azure/virtual-desktop/set-up-scaling-script
3: My Smart Scale – Developed by Marcel Meurer which you can get from GitHub here –> https://github.com/MarcelMeurer/Project-MySmartScale which essentially delivers this as a PaaS service in Azure

What about Profile and Application Management?

When Microsoft bought FSLogix they did it with the intent to be able to remove the hard link between user profiles and the underlying OS. Since it essentially allows us to host the user profile on a seperate VHD. However we still need to solve the applications which still are bundled with the OS. However Microsoft is working on something that they call MSIX AppAttach which is build on the MSIX framework. This means that applications that you currently have needs to be repackaged into MSIX before they can be used with appattach, which will also allow for simple mounting of applications when a user logs in. This makes it of course easier to handle OS images.

However this might still be a while before it comes out, but there are other vendors in the market such as Liquidware with Flexapp which provides Application Layering capabilities which can be used as an alternative.

Ecosystem such as Thinclient support and Print?

When we did in the early days of testing, most of the thin clients vendors did not support WVD since most of them connect directly to a broker and then most of them didn’t support Windows Virtual Desktop which makes it difficult to try out WVD from a thin client perspetive. However most of them I spoke with were currently in the process of developing support for it.

Now when it comes to printing there are multiple providers in the market, but we have been looking into a new provider which has native Azure AD based authentication called Printix which I recommend.



Leave a Reply

Scroll to Top