Virtual Applications are applications optimized to run in a virtual environment that can reside on-premises or in the cloud. In the simplest of terms, a virtual application runs on a computer without the need to be installed first. This can be accomplished in a few ways, using technologies like desktop virtualization or app management. There are fundamental differences between these approaches, but they are often used together to improve the user experience and simplify management.
Some of the many benefits of virtual applications include:
- Using desktop and application virtualization can allow apps to be accessed from devices that would not be able to run an application in normal conditions. Consider a Windows application being used on an macOS or Android device.
- Delivering applications remotely also allows organizations to support Bring Your Own Device scenarios since any device with a web browser can access the apps.
- Simplified application management and updating translate into lower support overhead, since admins need only update a single virtual application on a server to be distributed to client devices enterprise-wide.
- Reduced base image size: Since OS and app are separated, the base image isn’t as big as it would be if all apps were installed in it. This reduces storage costs, speeds up image management, and reduces admin time spent managing images.
- Increased portability: Apps can be deployed anywhere in just minutes, meaning users can be productive wherever they happen to be.
- Reduced software license expense: Virtual applications run on-demand, reducing overall software license expense since they are not installed on every device. Since many users will use an application rarely or never, application management tools can help determine the correct number of licenses for each virtual application.
- Extend the usable life of endpoint devices by turning them into “thin clients” that access remote desktops and applications.
- Enable the delivery of any Windows application on-demand
Let’s explore the primary methods of delivering virtual applications, starting with the technology called “desktop virtualization:”
Desktop and Application Virtualization
When using desktop virtualization to deliver virtual apps, the application itself is running on a computer in a data center that can reside in a company-owned data center or in a cloud provider. The user interface, or UI, of the application is sent via the network, often over the internet, to an endpoint device (sometimes called a thin client), where the user sees and can interact with the application as if it were running on the endpoint device. Many endpoint devices can be used, including those running macOS, Windows, Linux, Android, or iOS. In most cases, all that’s needed is a web browser.
In this approach, the application can be considered “virtual” because it doesn’t reside on the endpoint device. Also, the typical configuration in the data center is that the computer where the actual application is running is usually a virtual machine running on a hypervisor.
Desktop Virtualization is extremely useful in supporting a remote workforce. By delivering just user interfaces of desktops and applications to remote devices, organizations can ensure that the actual data remains in a data center rather than on scattered endpoint devices. Application front-ends (the part the user interacts with) can also be located geographically closer to their respective back-ends (the part where the data resides), thereby increasing performance and user productivity.
Applications delivered via application packaging (also called “app streaming,” though that term is sometimes confused with apps delivered via desktop virtualization) are different than desktop virtualization because they are, in fact, running on a given machine despite not actually being installed when the machine is turned on. Application management solutions use some sort of “packaging” to create a self-contained package that consists of the executable files, registry items, settings, and everything else required to make an application work. This package is then assigned to individual users or machines so that when the user logs in (or the machine turns on), the application is attached to the machine. In this manner, the application behaves normally even though it is never properly installed on any device because the underlying operating system, and therefore the user, believe that it is.
When an application needs to be updated, rather than updating on each individual machine, the app package is updated one time. Then, the next time users log in, they’re given the latest version of the application. This dramatically simplifies app patching and updating!
Applications delivered in this manner can also be isolated from the operating system or from other applications on the device. Different methods are used to achieve this. Some solutions apply a layer of virtualization between the attached apps and the operating system. Others used sophisticated filter drivers, while there are some platforms do no isolation at all.
Apart from security and isolation, app management solutions ease management by reducing the number of base images that must be maintained. By keeping only the apps required by everyone in the base image and centrally managing and distributing all other applications as individual packages and assignments, admins are able to patch and update both the OS and individual apps more easily.
Combining the two approaches
Both approaches to application virtualization are useful, but combined they can be a critical component of any application and desktop management strategy. Application packages can be assigned to virtual desktops and delivered as a virtual application to a thin client or other remote endpoint. This results in the best of both worlds – centralized remote access to virtual desktops and applications with all the flexibility and management relief made possible by app packaging.
Both virtual applications and virtual desktops simplify the delivery of applications to employees and users regardless of location or device. As its name implies desktop virtualization abstracts the entire user desktop – including all applications – from the client device, which operates in a similar way to a terminal or thin client.
Virtual applications, on the other hand, refer to individual applications that are virtualized. Of course an organization can make use of both methodologies to meet specific business and IT goals.
Desktop virtualization is different from application virtualization in that:
Desktop virtualization is the publishing of the entire desktop environment from servers either in data center or a cloud provider, enabling users to access that desktop environment from a network connected device, either on-premises or remotely through the internet.
Application virtualization is the publishing of individual applications from a server, with access provided either through remote display protocol or application streaming. The underlying mechanisms are the same as desktop virtualization, except that instead of the entire desktop being sent to the user, only the individual application UI is sent.
Employees to need to access all their business applications, even while switching between multiple devices, will opt for desktop virtualization. Virtual applications are better suited to employees who require access to just a few applications.
Enterprises can utilize the combination of both methods to customize application deployments for all employees based on their specific use needs.
Distributed workforce: The global Covid-19 pandemic only accelerated the work from home (WFH) movement that had been gaining steam. With employees increasingly dispersed working from a number of unmanaged devices, the ability to use virtual applications to support the broadest range of devices has become increasingly important.
Portability and Migration: Virtual applications facilitate migration from on-premises to the cloud, and simplify migration from server to server and from cloud to cloud. Organizations can continue to utilize legacy web applications by virtualizing the necessary web client along with the application to be migrated or ported.
Reduce silos / server consolidation : Multiple applications that previously were incompatible on the same machine can be now run on the same system since virtual applications can be packaged or sandboxed with user-specific configuration data to enable them to run without interference.
Client Application Isolation:Client device application conflicts can similarly be eliminated by isolating applications from each other and the underlying OS into a single executable file that can be easily deployed to many endpoints.
BYOD and Desktop Security: Deploying virtualized applications can act as a "locked-down" PC, while enabling users to run personal programs and games without impacting application or enterprise security.