Many years ago, I argued with a friend of mine in Redmond that eventually even the Windows client operating system would be virtualized, just like Windows Server. He swore that would never happen. Since then the windows client OS has been virtualized in the form of bootable VHDs (I should have made a bet with him back then. )
Predicting the future is risky, however it is pretty clear to me that we are now moving towards Windows as a Service (WaaS) or even Operating System as a Service (OSaaS). There is a lot of evidence to support this. That follows the path of Microsoft office, once an application completely installed on a computer now delivered in large part as a cloud-based service.
With the advent of the pandemic and the need to support remote and even home-based workers on all kinds of devices Windows Virtual Desktop (WVD) has suddenly become in great demand. Microsoft has gone through several iterations of offering Windows as a Service starting with partial solutions such as App Virtualization, Terminal Services, and Remote App and there have been 3rd-party solutions such as Citrix supporting this as well.
The latest offering in this family is Windows Virtual Desktop (WVD)
If we look at the challenges of delivering Windows as a Service, we must consider the requirements and what WVD provides or will provide in the near future to support this mode of delivery.
At its core an operating system is just the collection of files that implement it and the in-memory image of the running operating system.
- The operating system software (Kernel, Device Drivers, and Utility software)
- User management data (A User Profile either stored on the operating system disk or loaded from a shared remote location)
- Applications that are often installed on the same operating system disk.
- Persistent Data Files that are frequently stored on the operating system disk as well.
- Non-persistent data used during OS and application execution.
Once all these files and data have all been virtualized then an operating system can be truly user and device independent and able to be delivered remotely and dynamically. It should not matter if the virtual machine that is hosting it is the same one that hosted it the last time that the user logged on.
Concurrent with this is the need to be efficient in having large numbers of users accessing a smaller number of OS images running in the service. The new Multi-session version of Windows supports this very well just as Windows Server has done for a long time. Of course, in cases where dedicated images are required WVD supports that as well.
So, what is there now to address these requirements?
If we look at the operating system as just a collection of files as discussed above, we can focus on the virtualization of the other components,
- The Operating system
- The user’s profile, unique to the user that can be stored externally to the OS and traveling with the user from computer to computer when necessary. FSLogix Roaming Profiles is currently the main way to support this.
- Data Files which can be stored in a commonly accessible data store such as OneDrive or (in the case of a VM running in Azure) in Azure Files Storage.
- Installed applications, which can be separated from the operating system and virtualized with a technique such as MSIX App-Attach which is currently in technical Preview. MX App-Attach places installed applications in an external VHD that can be mounted to a user’s session when they log on.
The pandemic has given a boost to the need to support remote workers on all kinds of devices that they own. Although not the only reason to use it we believe that is what has given it a boost. As the technology matures there will be even more reasons for companies to adopt it. And Operating System as a Service is fast approaching.