Last week Jason E Smith, who is the Global Director of User Management and Performance Solutions within Liquidwarelabs, showed and told me a thing or two about ProfileUnity, their User Environment Manager, including their application layering a.k.a. FlexApp solution. They are on the verge of releasing ProfileUnity / FlexApp version 6.5 (as of early October) which currently holds the status of Release Candidate 1, which is the one Jason showed me.
In just over 45 minutes Jason was able to show me what ProfileUnity is all about, including FlexApp application layering, which I was most interested in. Itโs very straightforward and intuitive to work with. In practice Iโll probably need a few more hours to find my way around the management console and some of the advanced options, sure, but as far as user profiles, app layering, general app management and some of the other end user related features go like printing for example, itโs all pretty self-explanatory.
The best thing is, they have it all, a complete UEM solution, which also includes application layering, managed from a single web based management console. Note that both products can also be purchased separately if needed.
Enter the file system filter driver
Prior to version 6.5, FlexApp layered applications could only be assigned to users or groups of users and only worked for virtual non-persistent machines, mainly due to the use of so-called symbolic links. Today, or not to long from now anyway, FlexApp will work for both virtual as well as physical and non-persistent as well as persistent desktops.
FlexApp assignment is still on a per user or per user groups basis, but here you also have the ability to apply over 300 context aware filters that can be based on virtually anything you can think of, very flexible and easy to configure. Note that when you assign a VHD to an RDSH / XenApp server this will be a machined based assignment, which makes sense.
FlexApp Layering now leverages a set of file system filter drivers (instead of the symbolic links mentioned earlier) to deliver applications that look native to the OS environment and can therefore interact with other (locally installed) applications when needed.
FlexApp Packaging Console
Packaging a FlexApp layered application is straightforward. The FlexApp Packaging Console app should be installed an run on a non-persistent VM desktop. Simply put, during the creation / installation process all application files and corresponding registry entries will get redirected and saved to a VHD or VMDK file.
New user profiles
As of version 6.5 user profiles can also be stored in VHD and/or VMDK files, meaning they will get mounted onto the machine just like a FlexApp layered application would. This has several advantages when compared to applying traditional folder redirection for example. Instead of having a constant stream of SMB traffic over the line, it will be limited to reads and writes only, which is similar (not completely the same though) to what FSlogix is doing. In short, Profiles managed with ProfileUnity are dynamic and can roam across different Windows OS versions, from Windows XP and upwards if Iโm not mistaken.
XenApp, RDSH, VMware
There are basically two flavours of FlexApps, VHDโs and VMDK if you are using VMware. It works for XenApp, RDSH, XenDesktop and VMware View virtual machines as well as physical machines. VHD files get mounted in guest and as such work with virtual as well as physical, while VMDK files are mounted at Hypervisor level, which means they can only be used with virtual machines, something to keep in mind.
Various…
In the case of Citrix XenApp, FlexApp applications can be layered to a server and then you can use ProfileUnityโs application restriction features to keep unauthorized users from running applications / executables with a blacklist method.
The company has plans to add application cloaking as a feature in a future version as well, unfortunately I donโt have any more details at this time.
As mentioned VHD volumes for FlexApp are mounted โIn-Guestโ and therefore require no additional back-end servers to scale.ย VMDKs are also supported and in this case the management console attaches VMDKs for users (FlexDisk) at Hypervisor level. For this ProfileUnity includes an automated console replication/clustering option which does not require any additional load balancers.
All ProfileUnity related configuration data, in the form of policies, will (by default) be stored in your domain NetLogon share, which is already high available because of its distributed nature. If you would like to change this to another location you can. All user related settings are stored in an INI file format, which are very small in size and thus not negatively affecting the NetLogon share performance wise. Once logged in a user will have its settings cached locally for offline use when necessary. The actual FlexApp VHDโs and /or VMDKโs, and any other user related data / profiles will be stored elsewhere to a location of your choice.
Wrap up
So there you have it, ProfileUnity and FlexApp in a nutshell based on version 6.5. Note that this is not an application virtualization solution like ThinApp and/or App-V for example. There is no isolation in play here. In most cases application layering will be used in conjunction with application virtualization. If you would like to learn more about the Liquidwarelabs portfolio I suggest you go over to their website.
For example, you might also be interested in their Stratusphere (monitoring and analysis) solution, FlexIO (Storage IO acceleration software for VDI) or have a look at Application Rights Management and some of the options you have with regards to Windows Migrations, both features are also part of the ProfileUnity UEM solution.