I have been an admirer of Unidesk from afar for a few years now. I have attended multiple webinars and read a lot about their product. It always seemed like a very unique offering and captured my attention. Unfortunately, until now I was just an admirer from a far, I have worked in a few environments with a VMware back-end but it was never under consideration from the powers that be. Well, one of the great things about having this blog is that it gives me an excuse and incentive to further my learning and look at the products which intrigue me. My lab at the moment does not have a VMware back-end as a VMware Hypervisor is a requirement, so I thought I was out of luck. I reached out to Unidesk and asked if they had a virtual lab, I was informed they did not but then a couple of the guys over there reached out to me and offered up access to their demo lab. I’d like to thank Unidesk for giving me this great opportunity to get hands on experience with their products, particularly Ron Oglesby who was very patient with me and went to great lengths to co-ordinate all of this. I am very greatful.
So what’s the skinny on Unidesk? Well, Unidesk use something which they call layering which I’ll try to explain a little further down in relation to the more ‘traditional’ Virtual Desktop Infrastructure solutions. First, what do I mean by traditional in terms of VDI?. Well, I believe most people, at least those who read my blog have been involved or are aware of the in’s and outs of a VDI environment. The goal is to decouple your hardware from your software essentially, you want your users to get virtual machines which can be used on demand, these virtual machines are stored on storage in a central datacenter rather than on each users computers hard drive. But the challenge with this is each user has their own unique settings they like such as something as simple as their desktop background or Outlook theme color, as well as use of different applications, your Finance Department may need Hyperion products while your Telecommunications group need Avaya etc.
Today many companies use products such as App-V or ThinApp to virtualize their applications, isolating them and allowing their applications to be streamed on demand. ThinApp being able to run in a fashion which ensures there is no footprint on a machine when run from a share and similarly App-V with it’s Shared Content Store ensuring the applications don’t need to be cached onto a machines local disk, they can be run from shared storage. You then may have something such as AppSense, RES Workspace Manager or UE-V which can centrally store any unique user settings, ensuring these also do not need to be stored on a machines local disk. On top of all of this you might have something like XenServer, ESX or Hyper-V as a Hypervisor coupled with a broker such as XenDesktop Studio, VMware View etc. For creating Virtual Machine Golden Images and provisioning machines and resources to your users. All of these components working together to ensure a user can log in to any virtual machine and be provided with applications they need on demand without needing to install them, ensuring any configurations they made is also available whenever logging in and most importantly the Desktop can be non-persistent, meaning it’s a throw away and when the machine is shut down, it’s wiped and that’s not a problem because the applications are on demand and will be there whenever a user logs into any machine and their user settings and changes made will also be there due to being stored in a central location and pulled down on demand.
The real goal is to reduce the cost of purchasing and maintaining desktops and laptops for users, goals for VDI is also to reduce complexity and costs related to management. Getting away from having multiple Images for your environment, no longer having one image for Developers, one for Finance, One for Project Managers etc. You want one Golden Image, which can be provisioned to everyone in your environment. When you have this, you in essence have a built in fault tolerance, desktops are on demand and can easily be managed centrally and will not fall victim to say, a user spilling their coffee on the machine etc. There’s lost of potential benefits.
The team at Unidesk quite rightly point out the fact that not all applications can currently be virtualized. There are some limitations such as drivers, Network DCOM\COM+ which cannot be virtualized. Though the list of limitations is much fewer with App-V 5.0 SP2 on the horizon, some still exist. In a VDI environment this can provide a challenge, you essentially need to install those apps locally on to a virtual machine and deploy that, or possibly host those in RemoteApp or XenApp and manage a dual environment..it’s not ideal. Also for anybody who has used something like UE-V, AppSense or RES Workspace Manager, although incredibly powerful, you’ll realize the amount of effort and pains involved with trying to perfect these, ensuring you gather every possible user setting can be time consuming and overwhelming. In terms of the Hypervisor and Brokers, with Unidesk you certainly engage less with vCenter as the tool is like your portal into this. You do need to do some VM setup, but after that Unidesk is your friend and can create Virtual Desktops for you using the Gold Image you create. It also has it’s own built in copy of Microsofts Mini-Setup and a tool called Optimizer which are a big help in simplifying VM Management, I will touch on this more later.
Unidesks layering breaks the VDI mold completely. You can create Golden Images for Windows 7 32-bit, Windows 7 64-bit and XP 32-bit for your environment. These Operating Systems will each be contained in a layer. From what I have seen these layers are actually VMDK’s containing the Operating System and any unique OS configurations which you may want to set in these. Applications are also stored in VMDK’s! You perform a capture of any application install you want using an ‘Installation Machine’ which is just a VM used for capturing installs. You create an Application Layer very simply, this application is stored on a VMDK file close to the size of the application, it’s not huge and does not contain the OS files, just the installed files\registry etc. Finally you have your Personalization Layer! Any settings, run time changes made by an individual user gets stored in their layer which is actually two sub layers one for user app settings and another for user data. From what I understand, these act like a Stack. The Personalization Layer takes priority, for example if the personalization layer contains a modified version of a file which is also on the OS layer, the file in the Users Personalization layer wins out. Which is exactly what you want, as the personalization layer follows the user around to any machine they log on and use, you want that change to be reflected and experienced where-ever they may go. You then create desktop layers for your users, picking what layers to apply for them e.g. give them the Win732-bit layer, with your Office 2010 layer, Adobe Reader 11 layer, Java layer, Visual C++ layer etc. These are all put together and the result is a desktop experience which contains Windows 7 with their applications just as they would on a local machine with all of their user settings being stored in the personalization layer. All the layers blend in together on demand, providing a seamless end user experience. So your smaller Applications VMDKs are merged with the OS Layer and the personalization layer, is also merged for the session.
Like I said, a VMware Hypervisor is a requirement for this solution, at least at the time of this post. So what else is required to get Unidesk up and running in your environment? This is a software product, it enables you to quickly and simply manage your Virtual Desktop Infrastructure from a central management point and so you need some of the more traditional hardware and software components of a VDI environment. You need storage be that SAN, Local, Flash or Hybrid. You can also use Unidesk with a wide variety of brokers from Citrix and VMware and in fact according to the video tutorials I watched, You can use others from the likes of Quest and even in one case the product worked with a customer in-house built broker. Actually from watching all of the videos that seems to be a common theme…for example they officially don’t support Windows 8.1 right now but have it running without issue in their lab, it just has not gone through their formal QA process. The Management Appliance acts as the central console for managing your Virtual Desktops, Applications, Active Directory connection etc. the Server which the Management Appliance is installed on, also stores the mySQL database. You’ll obviously need a solid Network infrastructure, this is key for any successful VDI environment. Unidesk also uses something they call Cachepoints, you will have a Master Cachepoint which will store your Application and OS layers, as well as your Installation Machines (for capturing apps). You can also have secondary Cachepoints as needed which act kind of like datastores for scalability of the environment. The Master Cachepoint can then replicate to these Secondary Cachepoints.
Due to the fact I couldn’t set this up in my own lab, I did not get to experience the setup for myself. But for more there’s a great video hosted by Ron which you can see HERE
Creating an OS Layer
You will want to create your OS Layers with your Operating System and latest Windows updates applied. You can also make any other changes to the operating system which you would like to have set as the default setting in the OS Layer. In the Management Appliance browse to the Layers tab and then the OS Layer sub tab.
To reiterate, the vast majority of activities for managing your Virtual Desktops is carried out using the Management Appliance, which is a Silverlight based web portal. To create an OS Layer you can navigate to the Layers. Click on OS Layers and click Create OS Layer.
According to the tutorial videos it’s a good idea to include the date in the version for tracking purposes. This can be useful for indicating the level of patching applied. The rest is pretty self explanatory except for maybe Script Path. Which can be used to run a script such as a cmd file to carry out some task on startup.
Next you can assign a shortcut .ico file for your OS Layer.
Finally choose to Create Layer
The progress can be shown on the bottom task bar.
After about 15-30 minutes the OS layer will be created and ready for use.
Creating Application Layers
Application Layers can contain one Application, multiple applications or even just files, registry, settings etc. which you would like to deploy as a layer to your users. Browse to Layers and the Application Layer sub tab.
First take a look under System –> Installation Machines. If you do not have any Installation Machines, you’ll need to create these. This is a Virtual Machine used for capturing your applications. Ensure you know the names of your Installation Machines as you’ll need to leverage these in the creation steps.
Next go to Layers –> Application Layers. Click on Create Layer.
Enter in the application info. Again the Script Path can apply a script to the capture machine. The Layer Size isn’t the actual end size of the app, this is like the threshold size for the capture. If you set it to 10 but then try to capture something larger than 10GB, that’s when it’s a problem but in most cases 10 should be more than enough, for those once off exceptional apps that are larger, you can easily just modify the value to ensure a larger disk size is allocated. After capturing the size of the Application layer will not be 10GB, it will be whatever size is required for the app only.
Select the OS layer which should be used for the Capture along with the Installation Machine, this is where knowing the name of the machines comes in, so which one do you want to use? Just Select it.
If your application has pre-requisites which are already layers, you can select these from the list presented. These do not map the applications together for any future purposes or anything, this just ensures these applications are on the Installation Machine you are capturing on to ensure the pre-req is met and the capture can be carried out.
Select an .ico for the application. It’s a little bit of putting the cart before the horse, since you haven’t captured the app yet to grab the icon from. But you can overwrite the icon after the capture is complete.
Click Create Layer
At this point if you look in VCenter the tasks will show the Installation Machine is processing right now. You can log into the Installation Machine either through RDP (if enabled on the VM) or simply through the VCenter Console view and Install the application you want, just like you would for your own personal use.
You should see the icon for your application layer shows Editing.
Interestingly you’ll see in the Management Application that you have the option to change the layer priority, remember earlier in this post I had mentioned that the layers are in a sense stacked, that the Users Personalization Layer takes top priority. Well Applications also have a different priority level amongst each other when living side by side on a desktop, you can manage which one’s layer takes priority. So, if there’s a conflict between two app layers with the same file, you can ensure the newer app layer takes priority of this file..When you are happy with your installation on the Installation Machine, Click Finalize as seen above.
Click Finalize again.
When the application layer is complete. The icon will appear as Deployable.
You’ll notice if you click on a completed Application Layer you have an option to Add Version which will allow you to perform an upgrade of an applications version. From what I understand by upgrading the application in this fashion you ensure the Users Application Settings are maintained. If you just create a new Application Layer and remove the Application Layer for the old version and deploy the new version, the app settings will be lost. This method in which you remove the older version and deploy the newer version is only advised for applications such as clients\agents in which the user doesn’t have any user settings.
Create Desktop Layer
Under Desktop. Click Create Desktop.
You can select a template if you like which will contain settings such as for VM resources. That is if you create templates.
Select the User Assignments for the Desktop. You can assign to users internal to the tool, or if you have integrated your Domain using Directory Services (Under System) you can assign via Active Directory Users or Groups or alternatively you can use VMware View Pools.
You can select the pool and if these are for Non-Persistent Desktops, you can select the number of Desktops for floating pool assignments.
You need to select the Cluster or Host. Enter a desktop name or choose to have this automatically generated, under System you can set the naming convention for this if you’d like and then simply pick that convention on this screen. You select the Network the VM will go on and finally select whether the desktop should be persistent or Non-Persistent. A lot of what I have typed up in this post is assuming non-persistent, my description of VDI and the benefits have been reflective of a non-persistent desktop more so than persistent and that’s because I have faith that this tool is the best equipped to make the non-persistent desktop a reality.
Select the OS Layer you would like to apply, which I illustrated how to create earlier.
Select the Application Layers you would like to provision to users of the desktop.
Select the Number of CPU, Memory, Backup Frequency (I won’t discuss backups but these are covered HERE ) storage allocated for the Personalization Layer, What percentage the page file should be allocated for (this is important, people have horror stories in VDI regarding the overhead involved with paging, particularly in 64-bit VM’s) and finally the dump types, which is for system failure should there be a mini dump, kernel dump, no dump etc.
You can next pick the frequency and actions which occur when you want your desktops to refresh for maintenance purposes. After this step, all that’s left is to Finalize and then that’s it your desktop is ready for deployment and use.
There’s more to this tool than I have shown here for example there’s many more configurations which can be found under the System menu
There’s settings for creating Cachepoints, managing the infrastructure, integrating with other systems etc. All of that’s pretty advanced and out of scope for the purposes of this post. There’s great information to be found on the Unidesk site which answers much more of the deep technical questions, these can be found HERE I would like to make special mention to the fact Unidesk have created and provided some very useful utilities for creating your initial images. Such as their optimizer.
I guess it’s similar to other vendors optimizers but I like it’s simplicity, I also like that in the tutorial videos Ron gives his real world experience of issues he has faced when running optimizers, it gives a good idea of the weight involved in deciding what to include here. I know I didn’t cover the creation of these VM’s and the way Mini-Setup is used but really, if you have created an Unattended install of a Windows OS before, you should be familiar with how all of this works once you see it. Again check out Unidesk videos for more HERE
This is really cool. I have been involved in discussions and planning for VDI in the business. I have been a company to their implementation, usually I have not been one of the orchestrators but merely a spoke on the wheel. I have worked in the User virtualization and application virtualization side of things mostly and have provisioned desktops in a few environments but never for a high volume, even so and even when NOT dealing with a high volume, The concept of a Non-persistent Desktop was a very difficult objective to achieve. With current limitations of App virtualization, the complexity involved in capturing user settings in the workspace virtualization tools and simply the manner in which part of the organizations worked, made it a real struggle. With Unidesk, I believe the goal of a Non-persistent desktop is much more realistic. The layers merge together seamlessly. It really just works and works very well! I know it can seem intimidating because it is unlike anything else you’ve likely ever used. Getting to grips with the concept of the layers and realizing what can be stored in the Personalization Layer and how that works took me a few walk throughs to understand.
Unidesk is not like the other type of Application virtualization, as it doesn’t isolate the applications, so conflicts can still occur. I’ve worked in Citrix XenApp environments which were a disaster before using virtual apps. The Administrators were throwing any applications onto a server based on utilization with no regard for introducing application conflicts. App Virtualization worked great to resolve this problem. But in fairness, application conflicts are actually pretty rare these days on your typical users desktop. They don’t tend to have the number of applications a Xenapp Server might. Streaming apps also works great, Streaming apps provides a great flexibility and centralized management, it works great in most scenarios for most applications but there’s still limitations which become all too obvious when trying to get to a non-persistent desktop. You could find yourself managing more Desktop images in your VDI environment than you did with your traditional fat clients…so how much did you really save in the end? You now require more time to update and maintain multiple images and need storage to support these. Of course, if you have the resources at your disposal you could actually package your applications into virtual apps and create these apps as your Application Layers with Unidesk. It’s worth noting that just like with App-V or ThinApp, Unidesk is not an application compatibility fix! I’m not sure why but a lot of people think virtualization is some sort of golden gun in the App Compat world, it’s not.
From a Desktop and Image Management point of view it’s pretty badass. It’s quick, obviously the tools layering capabilities as suggested can reduce the number of images you need to manage, even down to one Golden Image if desired. Desktops can be spun up and deployed within minutes. With the Personalization layer you assure your users app settings and data gets presented on login for the user….it does seem like the Personalization Layer is kind of a catch all though, which I guess may need some foresight also. If the user modifies an application file, that file then gets stored in the Personalization Layer, which is good because it gives it top priority and ensures the modified file is there the next time for that user…but I could see where that could cause possible issues. Again, some foresight and planning are needed. Worst case scenario, if there’s a conflict caused by this happening, there is a re-install button in the interface which can be used to easily and quickly resolve this type or problem. When you decide to go with Unidesk, it is kind of an all or nothing solution, in a good way, it helps you to control pretty much every aspect of your Virtual Desktop space.I loved using and learning about Unidesk Virtual Desktop Management solution, it’s not just hype.