By Barb Goldworm
published: Wednesday, December 19 2007
Building on my last two columns on Server Virtualization and Desktop Virtualization, our next logical step is to move to application virtualization. To clarify, application virtualization does not require either server virtualization or desktop virtualization, although it is can be and is often used in conjunction with either or both. It does share some common drivers and technological approaches, but also address some issues on its own. In addition, application virtualization can help solve some of the problems that have previously been barriers to more complete deployments of Presentation Virtualization, aka Server Based Computing. (More on that later). First, just as the topic of desktop virtualization has a lot of terms that are often used/confused, so does application virtualization.
The term Application Virtualization is generally used as an umbrella term covering application isolation and application streaming, which are often, but not always implemented together. Let’s start by separating them.
Application Isolation
In its strictest sense and following the common definition of virtualization, application virtualization would be the abstraction of an application from the OS and hardware that it is running on. In common usage, this aspect of application virtualization is also called application isolation. A layer of abstraction is created between the operating system and an application running under it, so that the application runs in its own virtual environment within the OS. As a result, the virtualization layer in essence creates a private version of certain system resources, such as the registry. When the application writes to what it thinks is the real system registry, it is actually writing to a virtualized (and private) version of the registry. In this way, multiple applications are isolated from each other, so that if one application trashes the registry, for example, it does not affect the registry seen/used by other applications running within the same OS environment. The same isolation/virtualization process used for the registry can be done for other components like the file system. Isolation also can be done in varying degrees, allowing apps either to not see each other at all, or allowing some apps able to see some other apps (and be able to interact with each other). Different application virtualization products offer differing levels of isolation, and some offer these levels as configurable options – sometimes called configurable virtualization.
Application isolation is also perfect for fixing age-old problems of non-well-behaved applications stepping on each other, including allowing multiple versions of the same application (e.g., Microsoft Office or Internet Explorer) to be run side by side on the same machine. In addition to helping with applications in general, application isolation offers great benefits in a multi-user environment like Citrix Presentation Server. In the past, many IT shops have had problems where certain apps could not be run under Presentation Server because they were not well-behaved. App virtualization will now allow many of these non-well-behaved apps to run successfully in a shared Citrix environment, through the benefits of isolation.
Application Streaming
The other major aspect of what is commonly called application virtualization is application streaming, which generally involves streaming the application into a virtualized application environment. Application streaming is the ability to store an application on a central location (i.e. a central server of some type) and stream it (send its bits) over a network connection either to a user’s physical desktop, a user’s virtual desktop or to another server, to be executed on that device. In other words, stored (and managed) centrally stored, but executed locally.
There are significant benefits that streaming has to offer. Storing an application centrally, rather than installing it on all the distributed servers and/or desktops throughout the organization, can dramatically reduce the management issues involved in updating software. When a new version of the application is available, it is simply put out into the central location and flagged as updated. Then when a user goes to run that application, the new version is automatically streamed out to the user. (Different products accomplish this in different ways, but most have a reasonably simple way to handle it). This approach offers the benefits of centralized management, but still allows the applications to run on distributed systems, using all the power of the distributed desktops. Also, streaming can be used not only to distribute/stream software out to distributed desktops, but also across multiple servers – supporting either physical or virtual, desktops or servers. With good planning and good management tools, this can translate to a much simpler software management process, where applications are updated once, in a central location, and automatically streamed to all the appropriate physical and virtual environments as needed.
Packaging
In order to virtualize an application, most virtualization products include some type of packaging process. This takes various forms, and there is a wide variety across current products, in the ease or difficulty involved here. For simplicity here, let’s discuss packaging for products that do both isolation and streaming. Generally speaking, packaging or sequencing involves 1) using a packaging tool that is part of the app virtualization solution, 2) installing the application to be streamed into a clean environment, while the tool watches the process and creates the virtual changes required and 3) defining which parts of the application should be streamed when (hopefully providing the best “instant-on” experience possible, while streaming secondary blocks used later, in the background, transparently to the user). Most products also offer an option for “offline or disconnected users” to allow the entire application to be streamed to (and cached locally on) mobile devices such as laptops, so that the user can then go offline, and still continue to run the application. This typically also involves some type of expiration period, to ensure reconnection to the streaming server at some point in the future.
The packaging process is an area to look at closely, when evaluating products. Packaging can range from a few clicks, to a very complex process. In addition, you may find that some of your applications don’t run streamed, or at least don’t perform well enough for users to tolerate them running streamed. A problem with streaming a particular application may also occur only with some streaming solutions and not with others – so it’s important to think through your application portfolio in advance, and make sure you test your key apps with the streaming solutions that you’re considering.
Conclusions
Application virtualization brings capabilities which promise to help solve some of the management issues that have been plaguing IT since the 80s when sysadmins first had to deal with PC software distribution. As you move beyond server consolidation, and begin reviewing your future desktop strategy, both desktop and application virtualization are worthy of serious consideration as to how they can help you:
-
improve your ability to deliver the best user experience possible across diverse desktops
-
bring you the best and most responsive management control
-
achieve the best ROI and reduce ongoing TCO
This discussion has just scratched the surface in terms of capabilities, features and considerations. If you’re looking for more on the various products in this space, including a detailed analysis of product features, strengths and weaknesses, stay tuned here, and watch for our upcoming Focus Research Series early in 2008. For more information, please contact me at
This e-mail address is being protected from spam bots, you need JavaScript enabled to view it
.
|
Barb Goldworm is president and chief analyst of Focus Consulting, a market research, analyst and consulting firm focused on systems, software and storage. Barb has spent 30 years in various senior management, marketing, sales, engineering, technical and industry analyst roles with IBM, StorageTek, Novell, Enterprise Management Associates and several successful startup ventures. Barb began working with virtualization at IBM in the late 1970s (as a VM technical specialist), and later was VP of Marketing for the company that developed the first PC software distribution product in the mid-1980s (acquired by Novell in 1992). In 2006, she was commissioned by Wiley Publishing to write a book on blades - she agreed but changed the focus of the book to include a major emphasis on virtualization - the book was released in 2007, entitled "Blade Servers and Virtualization: Transforming Enterprise Computing While Cutting Costs", available on Amazon.com, Borders and Barnes and Noble.
Barb is a frequent keynote speaker, chair, and presenter at industry events. In 2007, she chaired the Server Blade Summit on Blades and Virtualization, and has been the keynote speaker for numerous Virtualization Summits this year. She also created and chaired the Interop Network Storage Track and has been one of the top 3 ranked analyst/ knowledge expert speakers at SNW.
Barb has published extensively since the 1990s, and has been a regular contributor to Network World, Computerworld, Computerworld Storage Networking World Online, Tech Target, and now Virtual Strategy Magazine. She has authored numerous research studies, landscape reports, and business and technical white papers on systems, software, storage, storage networking and enterprise management. Barb can be reached at
This e-mail address is being protected from spam bots, you need JavaScript enabled to view it
|