With the help of fellow IT professional Mark Van Noy, we’ve recently begun examining the pros and cons of different application virtualization solutions such as Microsoft Application Virtualization (App-V) here on our TechGenix website. Mark is a technical lead/architect working in the central IT department at the University of Colorado Boulder in the Greater Denver Area, and in his work there he is part of the Educational Technology Group that directly supports technologies in the classroom and the backend infrastructure for those technologies. Mark has a lot of real-world experience working in the application virtualization field and he’s graciously offered to walk us through the pros and cons of some of the more popular application virtualization solutions. In this article, Mark takes a look at FlexApp, a solution offered by a company called Liquidware that provides third-party Windows adaptive workspace management solutions used by enterprise organizations around the world. Let’s pay attention now as Mark explores the ins and outs of using FlexApp for virtualization business applications.
A look at FlexApp application virtualization and streaming
Liquidware’s FlexApp is an integrated part of their ProfileUnity suite and provides an unusual method of application virtualization. Rather than trying to containerize applications, their technology packages applications into VHD files that can be attached to either virtual or physical computers. With the ProfileUnity agent installed on an endpoint, a variety of combinations of applications using VHD files can be dynamically attached before login, at login, or on-demand.
Application compatibility is very high with FlexApp. Because the packaging process is mostly just installing to a VHD virtual disk instead of to the local hard drive/SSD there is much less to go wrong during the application packaging process. There are still some potential areas where packaging can fail for an application due to processes such as registry redirection or the VHD size limit of about 2TB. Despite VHDX having a 64TB size limit, the VHD 2TB limit is likely as large a package as can be reasonably distributed over the network. The 7-Zip package I used for testing and grabbing screenshots not only packaged cleanly but it also successfully implemented the right-click menus. Both Microsoft’s App-V and MSIX packages failed to successfully capture the right-click menu options for 7-Zip. While we did not test our most difficult applications to package such as LabView or Solidworks, we did not find any application compatibility problems with any of the applications packaged during our pilot:
Liquidware’s products, in general, are relatively inexpensive to deploy. Rather than relying on expensive to run and expensive to license database backends to deploy software, FlexApp relies on commodity file shares. Any storage technology from complicated SANs to simple NAS boxes can be the distribution source for FlexApp VHD files. This also makes it easy to have a distributed storage infrastructure with file shares being physically close to end-users. Of course, cheap and easy does not prevent poor design choices. An inexpensive NAS might be a great solution for branch offices while being a poor choice for the central office.
FlexApp attachments are near seamless to end-users. Only the most technical of users will notice that their applications are not natively installed. Opening Disk Manager will show the application layers as the VHD files that they are. However, few end-users are curious enough to want to poke around into the internals of their work computer. In all other ways, the VHD-packaged FlexApps appear to be locally installed. If an application is packaged with a Desktop icon then it will appear as will Start Menu entries and context menus. When FlexApp attaches an application it even shows up in the uninstall or change a program list:
FlexApp applications do not take up space on the end computer or virtual machine. There is still space used for things like application customization that will be written to a user’s profile by default. However, the application itself is being attached over the network while the application is executing in local memory. For physical computers, in particular, this can be a significant benefit as it lessens the waste of having the same installation files living across many computers as well as reducing imaging time and the time it takes to prepare either a new computer or a replacement computer if a system fails.
One of the greatest strengths of FlexApp may also be its Achilles’ heel. The flexibility of using vanilla file shares for storing packaged applications and VHDs for attaching them also means that application loading performance is dependent on the network. Applications, particularly large applications, just are not going to launch as quickly over the local network as they would on a fast NVMe SSD locally installed. Having more storage devices so they can be physically closer to end clients could certainly help alleviate network performance concerns, though that will add management complexity both for ensuring applications replicate to all appropriate storage and in making sure that end users are properly configured to pull applications from their nearest storage location.
FlexApp is presented as its own product on Liquidware’s website. However, the installer for the packager is downloaded from the ProfileUnity web portal and the packager requires logging in to the ProfileUnity web portal each time a new application is packaged or an existing package is modified. This requirement may not be a con if user profile virtualization is of interest. Otherwise, the ProfileUnity web console is adding a good amount of complexity to navigate if only applications will be managed. Some level of ProfileUnity’s functionality needs to be understood and configured because the agent that attaches the VHD files and handles which applications get attached to a specific user or computer is controlled by the ProfileUnity side of the suite.
Application attachment performance may also be an issue. An organization’s use-cases will have a significant impact on how end-users are likely to perceive their experience with FlexApp. FlexApp controls which applications will be attached based on the user so the earliest a nonpersistent VM is realistically going to be able to attach applications will be at login. If large applications or a large number of applications are attached at login then users may find their login time increases to unacceptable levels while they wait for their applications to attach to the VM. Alternatively, applications can be attached post login or click to run. Post login gets users to their desktop quickly while running the risk that the application they want to use right away is still waiting to be attached, in which case it appears to that end-user to not be installed. Click to run will publish icons without attaching the VHDs so users will see all their applications as installed with the initial launch being slower than it could be since the application will need to be attached as a VHD before it can begin loading. Newer versions of FlexApp do offer a streaming capability that allows the application to start loading before the application is fully attached over the network. For persistent environments, there is also the option to cache the VHD to the local system which brings back performance at the cost of storage space. Locally caching does still allow an application to be packaged once and deployed anywhere.
The final negative to consider with FlexApp is based on our experience at the University of Colorado Boulder after conducting two separate pilots about a year apart using two versions of FlexApp. Our experienced reliability was unpredictable. We had intermittent times where some or all of the VHD’s would fail to connect. Each time support was very helpful and responsive in isolating the problem. We were not doing anything overtly incorrect with the fixes often requiring registry changes that were not available from within the ProfileUnity interface. However, our environment for the pilots was fairly challenging: We were testing exclusively with pools of nonpersistent linked-clones in a VMware environment. It is certainly possible that we would have had a completely reliable experience with persistent VMs or physical computers; we do not know.
Liquidware FlexApp: For you ... or not?
If your organization has an interest in decoupling applications from the endpoints they run on, then FlexApp is worth running an evaluation to see if it meets your needs. Several point releases have come out since we last ran a pilot so any reliability issues may have been addressed as well as the intermittent failures we experienced may have been caused by our specific use-case. Overall, we were impressed by the technology and the promise of using VHDs as application containers. The application compatibility coupled with the ease of packaging is compelling and the pricing is competitive. The promise of the technology is unequivocally there.
Featured image: Shutterstock