“The year of application management” continues, though I learned at BriForum last week that of all the terminologies for this niche, “Application Layering” is the one that seems to be boiling to the top, so we'll go with that. It’s as hot a space as I’ve seen in a long time, with a number of companies involved (linked items are ones that I’ve covered so far in this series):
- Liquidware Labs (that’s this article!)
- VMware AppVolumes
Last week at BriForum, both FSLogix and Liquidware Labs were in attendance. Since I wrote about FSLogix a few weeks ago, I sought out Liquidware for a briefing on what they’ve been up to with their app layering product, FlexApp. I’m sort of breaking tradition here, because the product I’m writing about is still under development, but since it’s scheduled to be released at VMworld I didn’t want an article about the current version to be obsolete in three weeks. So as you read this, keep in mind that the information in this article is about the planned features in ProfileUnity 6.5 with FlexApp. I did see some demos, so I believe it’s going to happen, but what is shown at VMworld might differ from what’s in this article.
The biggest takeaway I have from my conversation with Liquidware relates to how much their products are maturing. In the past it’s appeared to me that Liquidware’s modus operandi is to take the quickest way to the market in order to talk about the features that they have, as they did with the first edition of FlexApp (which was based on symlinks and was not what you’d call app layering in today’s sense). This time around, though, both ProfileUnity and FlexApp appear to have made it to the next level with advanced features that rival some of the other UEM and app layering products on the market.
Breaking down the platform, ProfileUnity is the product that pulls it all together, but the specific application management feature is called FlexApp. Over the last few years, FlexApp evolved from a relatively simple solution that used symbolic links to point to applications located on VHD files into a more comprehensive solution that makes use of file system and registry filter drivers and includes features like VHD/VMDK mounting and integration into ProfileUnity for profile and user environment management.
Since FlexApp is part of ProfileUnity (although it can be purchased separately), it’s worth talking about the entire solution. There are two different deployment scenarios that depend on whether or not you use VMDK or VHD images. The system if flexible enough to let you use both, but in order to provide high availability you have to have a bit more in place if you’re a VMware shop and using VMDK files (which, according to Liquidware, is still way less than you have to do with AppVolumes).
The VHD-only scenario requires a single ProfileUnity server and file stores that hold your user profiles, settings, user data, and of course VHD files. By default, all the User Environment Management configuration stuff leverages the NetLogon share for distribution since it’s already there and replicated to all other domain controllers. When a user logs in, they receive their settings from an INI file in the NetLogon share, which is cached locally. When the user is offline, the ProfileUnity agent can still use the cached copy to enforce policies that apply in an offline scenario (application execution policies, for example).
Using the NetLogon share takes care of making your environment fault tolerant (though you’d still have to stand up a new management server in the event of an outage). You could change the network share that’s used if you wanted to, but NetLogon is only used for policies. User profiles and data are stored elsewhere, as well as VHDs (just so there’s no confusion…you’re not loading up NetLogon with VHD files and user data!). Profiles, in particular, are stored as compressed files that are portable between OSes, going as far back as Windows XP.
New in the upcoming release is the ability to store profiles in VHD or VMDK files, which is similar to FSLogix’s Profile Containers where rather than redirecting folders to different file shares and pounding the network for relatively mundane tasks, turning off Search, or disallowing the use of OST files, all data can live in the profile which is mounted a single time as a virtual disk file. This means there are only read/write packets traversing the wire as opposed to lots of SMB operational stuff like what you’d get with Folder Redirection. Liquidware’s solution doesn’t use a filesystem filter driver like FSLogix, so they claim to get more native performance. FSLogix uses their driver to do some optimizations on the file operation traffic that actually goes across the wire, so it will be interesting to see how things compare once ProfileUnity 6.5 ships.
With regards to FlexApp, working with VHD images for applications means that the images themselves are mounted in-guest, and work with physical or virtual machines, including RDSH. But what if you’re a VMware shop and want to use VMDKs? The general ProfileUnity features still work the same way, but adding VMDKs to the mix means that there needs to be an extra level of fault tolerance and some more components for integrating it into vSphere.
To accomplish this, Liquidware uses a product they created called FlexDisk. FlexDisk has been around for a few years now as a way to mount applications that live in VMDK files to non-persistent VDI VMs. This functionality has been extended to any virtual desktop (persistent included) running on vSphere, but it’s limited to virtual machines because VMDK files are mounted at the hypervisor level. That means in a mixed scenario where you’re delivering the same things to physical desktops as you are to virtual desktops you’ll probably be better off using VHD files.
To make it highly available, you’ll need to use a different deployment scenario for ProfileUnity. Liquidware wanted to avoid SQL clusters and load balancers, so they created a fabric based on three management nodes. One node is the primary, and the others have full replicas of the database (which runs on MongoDB and is automatically installed/created for you). Anything communicating on the fabric (ProfileUnity nodes, FlexDisk, hosts, etc…) uses multicast, and any ProfileUnity node can respond so there is no single point of failure. For more information about how this works, check out this video.
In either the VMDK or VHD scenario, apps are packaged with a snapshot approach. During snapshot creation the application files and registry settings are redirected to a VHD or VMDK file. FlexDisk keeps track of the application information for VMDK-based apps, but in the case of VHD apps there is also some metadata created alongside the VHD that allows the FlexApp information store to be recreated by looking at the virtual disks themselves rather than re-packaging each app in the event of a failure. Admins can also specify a “post-layer” script that runs in order to do any cleanup tasks. The example I saw was to automatically register Office with the KMS server.
Apps can be assigned to users based on just about any qualification. It can be as simple as user or group, or it can be based on LDAP properties, OS, connection type, and many other things. Basically, any filter that ProfileUnity policies are based on can be used to provision applications as well.
The biggest thing missing from the list of features of FlexApp is any sort of isolation between the applications. That’s not a showstopper by any means since you can accomplish that with App-V or ThinApp, and it’s not like those are going to disappear anytime soon. It’s worth keeping in mind, though, as you evaluate you application strategy moving forward. You can do better than managing everything with ThinApp or App-V, but you probably can’t replace it altogether.
The key takeaways for me are:
- Application layering based on mounting virtual disks
- Profile virtual disks can help regain some lost functionality
- Works on physical or virtual
- Works on persistent or non-persistent
- VHD model can be installed quickly, so easy to test
- FlexApp is included with ProfileUnity, so you get UEM as well
Check out LiquidwareLabs.com for more information and a beta evaluation. ProfileUnity (which includes FlexApp) retails for $39/named user, and should be generally available to the public for evaluations by VMworld. I’ll be there, so I’ll make sure to stop by and check on the progress.