Beyond Server Virtualization – Application Streaming & Virtualization
By Bryan Dickson
Anyone who knows us here at AccessFlow knows we are passionate about Virtual Infrastructure. Having worked with, and in, virtual server environments for the last few years, I have grown accustomed to the elegant simplicity and versatility with which virtual server resources are created, changed, migrated, recovered and managed. I find myself increasingly frustrated when I need to interact with other technology domains that are still built and managed as monolithic units of hardware, software, and the logical functionality they provide. One of my main activities at AccessFlow is investigating, evaluating and integrating the expanded virtual infrastructure ecosystem beyond virtual servers, and even beyond the data center.
Today we will be looking at one of the most exciting and potentially beneficial applications of technology infrastructure virtualization available today: application virtualization. Application virtualization, as realized through application isolation and streaming technologies (referred to in this article as Application Streaming), allows applications to be executed on an operating system using local processing power without ever being installed or requiring changes to the operating system. Furthermore, the application isolation component of Application Streaming solutions allow the execution of multiple virtual applications on the same operating system in separate “isolation environments” ─ preventing application conflicts much in the same way multiple virtual machines can run on one operating system or hyper-visor without interaction or conflict.
This is a fast growing technology as users are finally seeing an alternative to automating the painful and fundamentally flawed process of application installation. The concept of application virtualization and streaming was developed in the late 90’s by a small startup called Softricity through their SoftGrid product. As a beta user of SoftGrid 1.0, I knew that application virtualization would eventually change our concept of application management. Ever since, I have been waiting patiently for the technology to mature and gain acceptance. It has taken several years and the widespread acceptance of VMware to bring virtualization into the mainstream. We knew application virtualization and streaming was here to stay when Microsoft recently bought Softricity to integrate the functionality into its operating system. In addition, Citrix Systems is about to launch an application isolation and streaming product (currently titled Project Tarpon). Project Tarpon completes the Citrix application delivery suite by combining the dynamic application delivery that made Citrix famous with an application isolation environment and local application execution that doesn’t require massive centralized processing and continuous connectivity. Thank you Citrix.
In addition to software giants Microsoft and Citrix firmly embracing application virtualization and streaming, several electronic software delivery and system management vendors are integrating some or all of the application streaming or isolation functionality into their products. Now that it’s clear that application virtualization is going to be a major player in our future application management infrastructures, let’s talk about why this is not just another incremental improvement in application delivery and management, but a disruptive shift in the very concept of application management.
What exactly is application virtualization? Today’s application virtualization solutions combine two separate technologies to provide a comprehensive solution: 1) Application Isolation and 2) Application Streaming. In my mind, without both of these components much of the value of application virtualization is lost. There are vendors who offer application isolation or streaming which by themselves are valuable technologies ─ but when combined they create a comprehensive application virtualization solution. This is why we consider the MS SoftGrid and Citrix Tarpon technologies the two true application virtualization options currently available. Let’s look more closely at these two components.
I believe the root cause of all application conflict problems lies in two fundamental problems in the Windows OS design that have led to endless application support and management woes. They are:
Installing applications changes the operating system
Installed applications share components
At first glance these seem both obvious and unavoidable. How can you add an application to an operating system without changing it? How can multiple applications run on the same system without sharing components? Actually, the sharing of components would not be a problem if application installation didn’t change any shared components. I’ve often heard system administrators joke “the systems would run just fine if we didn’t install any applications on them”. This is true and it is the secret to a stable manageable application virtualization system.
Preparing an application for streaming deployment is similar to packaging an application for deployment through MS SMS or LANDesk. The application is installed on a workstation running the base operating system image and software to capture all changes to the user and application registries, file systems, and shared system components. Traditional EDS software then pushes these changes to the distributed desktops and installs them altering the OS which can lead to system instability and application conflicts. Where the application streaming solutions differ is they record these changes and instead of pushing them to the OS, they recreate the necessary user and application registry keys, file hierarchies, and shared components in an application isolation environment for use by that application only.
When this application is launched on the workstation, the application is never installed. The virtualization client creates an ‘isolation environment’ for the application that contains read/write copies of all of the registry keys, directories, and shared components that application will need to write to. This creates a private environment for the application that never alters the base OS or any components used by other applications. The application has read-only access to any OS registry keys, files and components that it needs, but it can only write to or alter the registry keys and files in its own isolation environment. Applications never conflict with one another or change the base OS-- think about what this will do for system stability. As good as that sounds it gets even better when we add application streaming to the mix.
Electronic software distribution is a lot better than manually installing an application on 1000 desktops, but push installing a complete application to 1000 desktops is not a trivial task; it is the shotgun approach to application delivery. Application streaming utilizes a client-controlled streaming protocol to pull the application components as needed from a centralized server. The ‘packaged, profiled, or sequenced’ applications are stored on a central file server. Application icons are published to user’s desktops or through a web portal (think of Citrix Program Neighborhood or Web Interface) and roam with the user throughout the enterprise. When a user clicks on an application icon, just enough of the application package (usually the app.exe and a file with isolation rules or execution scripts) is streamed from the file share to the client and launched in an application isolation environment for that application. As the user activates additional application features supporting files and DLL’s, additional .exe’s will be streamed down as necessary in real-time. The application files are stored on a local application cache so repeat streaming is not necessary.
The result of application streaming is a dynamic user application delivery and change environment previously only available through Citrix Presentation Server published applications. Unlike thin client solutions, application streaming gets you local application execution which is not dependent on continuous connectivity; through application caching you can run disconnected from the network on laptops, and you don’t need massive centralized server processing power.
By combining the application isolation environment with application streaming you can realize numerous benefits including
Elimination of application regression testing
Elimination of application installation
Increased stability and elimination of application conflicts
Real-time application delivery, updating, change, and roll-back
Application mobility and roaming
Centralized application and license management
Reduced license cost by deploying applications when and where needed
Simple and viable desktop disaster recovery and business continuity
Application virtualization is an exciting and rapidly developing part of the virtual infrastructure and you can count on AccessFlow to be following it closely and providing best of breed solutions and integration in this area as well as with the rest of the virtual landscape. Please stay tuned for more updates Beyond Server Virtualization, and an upcoming AccessFlow white paper that explores application streaming technology in more detail.