The features of software virtualization solutions that I address in this article are special in the sense that they don't stand for conceptual differences. Nevertheless, they might turn out to be important or even decisive for your environment.
- Pip install Boto3 - Thu, Mar 24 2022
- Install Boto3 (AWS SDK for Python) in Visual Studio Code (VS Code) on Windows - Wed, Feb 23 2022
- Automatically mount an NVMe EBS volume in an EC2 Linux instance using fstab - Mon, Feb 21 2022
Settings: You might want to allow end users to configure their applications or install plug-ins by themselves. This means that they have to have the ability to modify the virtual environment. The various products solve this problem in different ways. Some tools allow you to store these settings on a server, thereby supporting application roaming.
Linking: This feature is related to the one above. Some products enable you to link virtualized apps. For example, one virtual environment could host the .Net Framework for .Net apps running in other virtualized environments. This feature can also be used to deploy add-ons. The more sophisticated solutions enable you to centrally manage the links between virtualized apps for your whole network. For instance, you could assign the Google Toolbar to a certain user group with just a mouse click.
Shell integration: This is the tricky part of application virtualization. How can you add the apps icons to the Start Menu? How can you associate file types with virtualized apps? These are the questions you will have to address if you work with software virtualization. Because virtualized apps are not installed, you have to integrate them into the shell by other means. Most solutions use MSI files for this purpose. However, this contradicts the spirit of software virtualization. Some solutions are able to virtualize the shell integration as well.
Driver support: Most software virtualization products don't support apps that come with their own device drivers. For example, VPN solutions often install their own network drivers.
Terminal Server support: The more desktop apps you install on a server the more unstable it will become. Therefore, it makes sense to work with application virtualization solutions in a Terminal Server environment. Not all vendors explicitly support this feature.
Compression: Usually the packager compresses the virtual environment in order to minimize bandwidth usage. If this is important to you, I recommend measuring the effectiveness of the compression algorithm.
OLE capabilities: Copy and paste functionality is an important feature. However, if you allow end users to transfer data between apps, security may be reduced. If OLE capabilities are a necessary feature for you, you should check if the solution supports copy and paste and if it works properly for all your applications.
Portal: Especially if you work with streaming, it might be useful for you to offer end users a portal from which they can launch all applications.
Licensing: Since virtualized applications are not installed, you usually only have to pay license fees if an end user actually requests an app from a server. This might turn out to be useful in your environment if the product of your choice supports license management.
User assignment: Some products allow you to assign applications to users or user groups. End users can then launch only those apps that have been assigned to them. Sophisticated solutions display virtualized apps only to those users who have the proper access rights.
Degrees of virtualization: Some tools allow you to configure the degree of virtualization. For example, you can specify which folders of the OS will be virtualized, if apps can communicate with each other, etc.
Zero footprint: If security is the main reason why you want to introduce software virtualization, you probably will prefer a solution that changes nothing on the host system. This means that the virtualized application has to run completely in memory without writing to the hard disk at all.
Patch management: Because virtualized applications are not installed, you usually can't update them with a common patch management tool. Some virtualization solutions offer features to update virtualized applications. If a product doesn't have this functionality you have to create a new package whenever the software vendor of the application issues a new patch.
Company size: The size of the company can also be an important factor to consider. A small company might not exist in two years. If they haven't been swallowed by a bigger fish, then you will have to move to another solution, which costs time and money. However, the small vendors often offer better support. It is much easier to get in touch with the guys who really know their product. Those companies that have only one product are sometimes more dynamic and come out with new product versions in shorter cycles.
Subscribe to 4sysops newsletter!
Did I miss an important feature? Please let me know.