Citrix App Layering

By Rory Monaghan


Over the years, I have posted quite a lot of content about Unidesk, which you can read HERE. While I did try out Unidesk with 2.x, they really piqued my interest with the 3.x release which supported Hyper-V and Remote Desktop Services. You see, RDS is a real pain in the ass when trying to manage it at any sort of scale. The Server Manager’s built-in consoles for managing desktops and users in RDS, simply are not fit for purpose. Unidesk however, was an excellent compliment for RDS. You could quickly and easily filter your virtual desktops, edit\manage multiple at once and of course it also made image and application management super simple!

It’s for this reason, that I decided to post a video and blog around Unidesk\Citrix App Layering 4.x for Hyper-V. For a good walkthrough of creating your OS layer, the new platform layer and application layers for your Hyper-V environment watch the below video. Continue to read this article for details on some of the changes made in the product and to find out what I like and don’t like about this version.

You can tell an immediate difference between Unidesk 3.x for Hyper-V\RDS and Citrix App Layering 4.x for Hyper-V as Microsoft’s System Center Virtual Machine Manager is now a requirement. The reason for this is because there has been a major product overhaul. You no longer create a virtual desktop made up of your OS Layer + App Layer(s) + User Layer through your Unidesk Console. Instead, you produce an image which can be deployed via any provisioning service already in use in your environment. The product is no longer all-encompassing, it’s no longer all Unidesk or nothing! In my video, I publish a Citrix Provisioning Services image. My PVS is connected to SCVMM for machine management.

Of course, you don’t have to use Hyper-V + RDS + SCVMM. There are other hypervisors to choose from such as Citrix XenServer, VMware vSphere and Nutanix Acropolis.

A really cool new feature available in 4.x is the Platform Layer which I go through in the video. Essentially, what the platform layer adds is a layer that applies optimization and logic for your combination of OS Layer + Hypervisor + Provisioning Service + Broker. When you use Citrix App Layering, you don’t really need to have working knowledge of the various SBC and VDI products out there to manage virtual desktops and RDSH within them. Simply create an OS Layer using the same repeatable process, no matter what platform you want to deploy to then create a Platform Layer and once complete, pull that all together when publishing your image.

In my video, I already had a Server 2016 OS Layer that I created. I went ahead and created a Server 2012 R2 OS Layer. I had already created a PVS Platform Layer, so for the video I went through creating one for MCS. An even more likely scenario and one I work within currently would be having a single OS layer to maintain with a Platform Layer for PVS for publish applications in Citrix XenApp and then a Platform Layer for vSphere for my Horizon Virtual Desktop Infrastructure. Another great purpose for this is ease of managing a single image between my on-premises machines and those in the cloud. I can have a Platform Layer for Azure and\or AWS too. It’s very cool!

Personally, while I think it’s very cool because it applies to my current scenario and because I’m also a tech hobbyist and have great use for this type of flexibility with my home lab work, I’m not so sure it’s as useful for the majority working with in-house enterprise IT teams.

As stated in my video, the download for Citrix App Layering provides an appliance rather than a server based install. This is a change I really like! No more spinning up a Server to install the Unidesk tools and no requirement for multiple virtual machines running to run the Management Appliance and Cachepoint. Now it’s a single appliance, your Enterprise Layer Manager. For Hyper-V, the download includes two virtual hard disks, which you attached to a new virtual machine. vSphere and other hypervisor downloads contain a template which is even easier to setup and get running. I suggest following Unidesk’s excellent How to Video Series to get setup and running.

Right now, unfortunately, the web console still requires Silverlight. I hope to see an HTML5 release in the near future.

As stated in my video, there are some quirks in the Hyper-V product. It’s not very streamlined. At several points you need to manually copy the virtual hard disks for the Installation Machine(s) and you have to manually import the produced image into your PVS store. This is not the case when working with other hypervisors and stacks. Those will take care of that work for you BUT as somebody who was partly drawn to Unidesk for making RDS more usable, this clunky manual process was a bummer.

This release also features Elastic Layers. These are layers that you can deploy in real time. If you are familiar with Liquidware’s FlexApp and VMware’s App Volumes, you may have already seen this type of feature before. You target the App Layer to users, it mounts (hot adds) and appears on their desktop pretty instantly. It’s very cool. My experience with the other products that offered this was that not all applications will function correctly when deployed as a real-time layer. I had greater success with App Volumes for example when I deployed on a scheduled event rather than in real time. I believe this is because certain apps may inject components at a low system level, such as a driver which may not work when mounted during run time and instead should be attached at boot.

I had always figured Unidesk did not have this hot add feature before due to the fact it introduces management complexity as not all layers can be successfully deployed as an Elastic Layering. Citrix App Layering has accounted for this. When creating a layer, the tool runs a quick diagnostic to tell you if it’s likely to work as an Elastic Layer or not. No need to try and fail! I believe this report will make it’s way into AppDNA at some point, similar to how it reports on AppDisk compatibility.

If an app is not a good candidate for deployment as an Elastic Layer, you can instead just add it to your image. Adding it to your image is very simple. You create your App Layer, go to the image of your choice, edit it, go to App Assignment and simply check the box for the app you wish to add, then publish the layer. I show this in my video.

In my experience, no matter what hypervisor\product stack you use, the creation of the App Layers, OS Layers and the Published Image Layers with Citrix App Layering take a long time. Even when you throw a 10 GB connection and speedy storage at it, as is recommended. Unidesk 2.x and 3.x took some time too but that provisioned\published the desktops for you so I guess to me, it seemed like that wait was for the finished product not just for an image that you then need to deploy. Creating many app layers and then adding them to an existing image can be a lengthy process. It’s slower than say, cracking open your PVS (vdisk) image, installing the app, sealing the image and deploying.

This is a big reason why I can’t wait for a more finely tuned release of Citrix App Layering. I am not ready to bring this into production in my current work environment. Our most business critical application is hosted in it’s own dedicated XenApp farm. These images get updated often and as such, we have developed a very streamlined image update process. The vendor does not support sequencing the application with App-V, so these changes must be made in the image. 🙁

In regards to the major overhaul of the product for Citrix App Layering, I feel there is more good from offering a product that can be used with other provisioning services than bad. You can now use this layering with more VDI stacks than ever before. You can produce a single image for many different products with a single setup. In my opinion, I can see App Layering getting integrated directly into both Citrix Studio and the PVS Console. In the future, I can see an option to simply install the Unidesk image utility onto your existing image and then add app layers into your image and deploy elastic layers using the PVS and Studio Consoles, if you wish.

My favorite direction is still to deploy the App-V client or Cloudpaging player as a layer and stream the majority of my applications. That way in most cases, I have one application package which can be deployed to any Operating System. Layers are great for those apps which either just won’t work when isolated or if they just require too much effort! For more on the topic of AppVirt vs Layering vs Containers, check out my GeekOut 365 session available on demand by the end of the month!

Some images were sourced from

Let's make virtualization easier!

Be amongst the first to know when I publish new reviews, guides and tools to simplify your projects.

By signing up, you agree to our Terms of Use and acknowledge the data practices in our Privacy Policy. You may unsubscribe at any time.