Application virtualization is becoming an increasingly popular way to manage resources and rapidly deploy applications. It’s the practice of using a virtualization layer to trick an application into thinking it’s interacting directly with the host operating system. This can be useful in situations where you want to run applications that are designed for a different operating system, or to sandbox incompatible applications so they can run on the same machine.
Application virtualization differs from server virtualization in that it focuses on allowing applications to run on a machine or in a web browser, without requiring additional dependencies. In contrast, server virtualization requires a hypervisor like Microsoft Hyper-V in order to allow a host machine to run multiple, full operating systems.
Application virtualization works by providing a virtual environment that applications can interact with. Instead of the application having to communicate directly with the host operating system, it communicates with the virtualization layer instead. This layer replaces certain parts of the runtime environment and handles requests that the host operating system might not be able to handle by itself.
When an application runs within an operating system without any virtualization, this is called a "native" application. Native applications can take advantage of features that are specific to the device or operating system they were written for. In contrast, applications that run in a virtualized environment cannot access the operating system directly. Virtualization can still carry some performance overhead, but it allows applications to run in a wider range of environments.
There are two ways to virtualize applications:
Remote application virtualization refers to the practice of running applications on a server so users can interact with them using via a remote control protocol. These applications can look and feel just like a normal desktop application, but they require constant internet or local network connection to use.
Streaming application virtualization refers to applications that are executed on the user's computer. When a user requests an application, its components are delivered on-demand to the user's computer. In most cases, this application will not be downloaded in full. Rather, the most important elements required for the application to run are downloaded first, with other components being downloaded in the background as needed. While a network connection is required for the streaming download, the application can run on its own after it’s installed.
Application virtualization is useful because it allows applications to run on hardware or operating systems that they were not designed for. In addition, remote application virtualization can offer some data security benefits compared to simply running applications on a user's computer, since data is stored on the server instead of the endpoint.
Some common uses of application virtualization include:
Application virtualization abstracts the application from the operating system. This contrasts with having to run full virtual machines (VMs) on a hypervisor. However, application virtualization is not always the correct approach. There are some clear benefits to using hypervisors like Hyper-V, including:
The main downsides of the hypervisor approach include:
Application virtualization is a broad term that doesn’t just include emulation tools and wrappers, but container platforms like Docker containers as well. Other solutions that can perform similar jobs include Remote Desktop Services and application streaming solutions. Docker containers are often used for microservices used by web applications but can be used for other purposes too. For example, Kasm Workspaces lets users access common open-source applications and even entire VMs from their web browsers.
If you're considering using application virtualization in your organization, there are several things you should ask yourself, including:
The size of your organization, existing IT infrastructure, in-house skill sets and budget will all determine which application virtualization solutions are best suited to your needs. Smaller organizations or those without a skilled in-house IT team might benefit from outsourcing their virtualization needs.
There are many possible approaches to application virtualization. VMware Horizon is a popular platform for application virtualization, as are other tools like Horizon Apps, which offer SaaS features as well. Open-source deployments like Kasm Workspaces offer a flexible and free way to get started with containerized applications. Microsoft offers some powerful solutions in the form of the end-of-life App-V and the more modern Azure Virtual Desktops.
When choosing a solution, consider the devices your users have access to. If you're in a bring your own device (BYOD) environment, a solution that offers flexible access to applications through a web browser might be the best option. If you need a more seamless experience, streaming application installations that can offer the look and feel of a standalone application may be more suitable.
In-house virtualization does not end with configuring applications or VMs. If you run persistent VMs, it's important that you have a plan for your backups and ensure business continuity. Tools like Veeam Hyper-V Backup and Recovery system can assure your VM images and the data stored your virtual drives is safe, and that you'll be able to restore your VMs quickly in the event of data loss or outages.
If you'd like to know more about VM backup and recovery replication software and how it can fit into your overall virtualization plans, contact us today to book a demo, or download a trial of the software and try it for yourself.
2022 Data Protection Trends
The largest data protection industry report from 3K+ IT leaders