AppDisk, an application layering solution was part of XenApp/XenDesktop 7.8 released in late February this year. This post is not meant to cover the basics of application layering or image management as a whole. You can refer to my blog for a quick overview. My goal in this post is to cover the administrative aspects of application layering using Citrix AppDisks. With that said, lets dig right in!
Creating an AppDisk
There are couple of approaches to creating an AppDisk. The first method is to manually create it at the hypervisor level and then import it within studio. The second approach is to create and assign the AppDisk right from within Studio. You can read more about both approaches here.
To create an AppDisk from within Studio:
Click on the AppDisks node within Studio and then select “Create AppDisk” from the Actions menu.
On the next screen, select the size of the disk. There are predefined options of 3, 20 or 100 GB or you could pick a custom size. This is also where you would import an existing AppDisk that you have created manually. Keep in mind that on a 3GB AppDisk a good chunk of the space is already used up and you would most likely get less than 1 GB for any new applications you are looking to install into that layer.
Next, you select the machine catalog you would use for the VM used to install applications into this AppDisk. Only the compatible options will be made available. For instance in the screenshot below, the only two options available are the NonPersistentVDI catalog and the Win 7 Pool. Reasons are provided as to why the remaining machine catalogs are not made available. Also worth noting that AppDisks can only be assigned random pool catalogs. The machine catalog should have at least one available VM for the AppDisk creation to work.
Next, give the AppDisk a name and the AppDisk creation process initiates. In my lab, I have seen anywhere from 10 minutes for a 3GB disk and under 20 minutes for a 20GB AppDisk (SATA storage). Creation of these disks on SSD storage was about 30% faster.
Once the AppDisk is created, you can install the required applications.
Installing Applications within an AppDisk
Within Studio, click on the newly created AppDisk. It should say “Ready to Install Applications”. Under the details section for the AppDisk, the preparation machine information is provided. Within the hypervisor management console, login to the preparation machine and install the required applications.
Once you have installed the applications, within studio, highlight the AppDisk and under the Actions pane, select “Seal AppDisk”. This starts the sealing process and once that is completed, you can run AppDNA compatibility analysis for that AppDisk.
Keep in mind that AppDisk Layering cannot be used for applications that have file system drivers and services. AppDisk does not include application isolation. App-V or Turbo.net provides that functionality.
Configuring AppDNA and Analyzing an AppDisk for Compatibility Issues
The main differentiator between AppDisk and the other layering technologies out there is the integration with AppDNA for Delivery group compatibility analysis. For instance, once we create an AppDisk we can test compatibility against multiple XenApp Images or a pooled Windows 10 delivery group as examples. This gives the administrator the assurance that the AppDisk is going to work with that delivery group without having to go through extensive regression testing. When you have multiple AppDisks assigned to a delivery group, the AppDNA compatibility analysis also makes sure that all the AppDisks play well together and reorders the AppDIsk assignment if need be based on the analysis. AppDNA integration is a XenApp/XenDesktop Platinum Only feature.
Before you can run any compatibility analysis, AppDNA needs to be configured within Studio. Click on the AppDNA section under configuration and specify the AppDNA connection settings. Make sure the connection test passes.
Getting back to where we were in the AppDisk creation, we had just started the sealing process. Once this process is complete, the AppDNA compatibility analysis will automatically kick in if AppDNA connection settings are configured. The compatibility analysis is done against the machine catalog that the preparation machine belongs to. When you assign an AppDisk to a delivery group, compatibility analysis is carried out automatically against that delivery group. If there are multiple AppDisks assigned, then the AppDisks will be reordered if needed based on the analysis. There is an option to “Auto Order” the AppDisks when you assign an AppDisk to a delivery group.
To view the report, click on “View Report” next to the AppDisk that you just sealed.
You can also view the reports from within the AppDNA console under the reports section. Here you have various views including the Application Issues, Application Actions, Issue View and Action View.
Assigning an AppDisk to a Delivery Group/Groups
To assign an application to a delivery group, click on Delivery Groups within Studio, highlight the Delivery Group that you want to assign the AppDisk to. Under the Actions pane, select “Manage AppDisks”.
The next screen shows you the currently assigned AppDisks and gives you the ability to add AppDisks. Once you assign your AppDisk, select Auto Order.
You can then select the rollout strategy. You can either reboot all the machines within that Delivery Group immediately or you can assign the AppDisk at the next machine reboot. You can then review the configuration and then click Finish. This initiates an AppDNA compability analysis if you have XenApp or XenDesktop Platinum entitlement and have configured your AppDNA server within Studio.
You can assign an AppDisk created with one OS to delivery groups running other OS’s as well so long as the application is compatible with the target OS. Within my lab, I tested assigning two AppDisks created with a Win2k12 preparation VM to a Win 7 random pool.
To assign an AppDisk to a delivery group, that delivery group needs to using the same storage. To assign an AppDisk to a delivery group on different storage, you would have to create a new VM at the hypervisor level tied to the target storage, clone and associate the AppDisk to the new VM and the reimport it within Studio. I am hoping this process will be simplified in upcoming releases of the product.
Updating an AppDisk
Currently there is no version management built into AppDisk. This means that each time you need to make an update, you are essentially cloning the existing AppDisk, making changes to it and then reassigning the new AppDisk to the Delivery Groups. It is also worth noting that you CANNOT resize an AppDisk when creating a new version.
To update an AppDisk, click on the AppDisk node within Studio, highlight the AppDisk you would like to update and select “Create New Version” from the Action pane.
On the next screen, select the Pooled Random machine catalog that you would like to use for the preparation VM. Again a VM needs to be available within that Machine Catalog to perform the update.
You then name the AppDisk with version information and click “Create New Version”. This kicks off the AppDisk creation process as detailed earlier. AppDNA compatibility analysis will be carried out against the preparation VM machine catalog once the new version of the AppDisk is created.
Once the new version is ready, you can assign the AppDisk to the required delivery groups and unassign the old version. This will once again kick off the AppDNA compatibility analysis.
Resizing an AppDisk
There are no options to resize an AppDisk from within studio today. You would have to resize at the hypervisor level and then reimport and reassign the AppDisk. I am hoping that this is addressed in the near future.
Deleting an AppDisk
To delete an AppDisk within Studio, click on AppDisks, highlight the AppDisk you would like to delete and select “Delete AppDisk” from the Action pane.
As I described in my previous blog on Image Management, AppDisk takes us one step further in simplifying Image Management. However App Layering is not a one size fits all solution and should be used in conjunction with other solutions like application isolation and the likes. I am quite impressed with AppDisks for a v1 product. The performance has been very good considering I conducted most of my testing in my lab using SATA storage. However, I do hope that certain administrative tasks (like AppDisk resizing and versioning) improve in the near future.