Virtualization: Dealing with Legacy Apps

The ability to seamlessly continue to manage legacy applications is one of the many tangible benefits of virtualization technology.

Thomas Olzak

Adapted from “Microsoft Virtualization” (2010, Syngress, an imprint of Elsevier)

Legacy applications can be some of the hardest and most frustrating applications to support in any corporate environment. Typically, the longer your company uses an application, the more its users grow to rely on the application or its output.

This is fine for applications that continue to grow with your business and technology infrastructure, and for the developers and vendors that continue to provide service and support. However, often there are applications that are abandoned by vendors for various reasons. The vendor could be purchased by another company, or it could simply choose to stop supporting the application.

Most companies will continue to provide extended support of an outdated application for a limited time. They do this to let you upgrade their applications to a current and supported version or to convert to another application that can provide the desired functionality. But what happens when you have an application that has fallen out of support, is strongly relied upon by your company, and has no known replacement or upgrade path?

This is one of the things that really makes virtualization strategies shine—the ability to preserve and support a legacy application without having to maintain it in its original state. As with workload consolidation, I’ll use an example to explain this more clearly.

I’ll call the legacy application Old App. Old App was originally implemented on a Windows NT server. I built the server using the available and suggested hardware configuration. I implemented Old App in an effort to streamline business process and make it more efficient and less costly.

The conversations that surrounded the project during its deployment suggested that using Old App would be nothing more than an interim step leading to a larger implementation. The future-state vision included more robust software from a larger and better-known vendor offering the same solution, but with a higher price tag. So Old App was really more of a “proof of concept” than a final solution.

Once implemented, Old App was quickly accepted by the users, and the business began to see some great benefits. Old App was implemented the same way the majority of applications were deployed over the last 10 years or so; in most cases, an individual server and its OS were dedicated to the application.

So here I am, years after I originally implemented Old App. It has proven to be a solid application, but the underlying components that support Old App are aging. The hardware platform has reached its end of life, and I’ve already replaced numerous parts. I could simply order a new server, but the OS Old App requires is a version of Windows Microsoft no longer supports, not even through extended support.

I attempted to contact the original vendor of Old App to get a newer version that runs on a current version of Windows. However, the vendor is no longer in business, and a comparable replacement application is simply not feasible in the near future. I could certainly buy new hardware and install the outdated version of Windows and be very careful, but that’s simply not the best way to handle this task. What are my options?

Virtualization: A Second Life?

There are numerous alternatives to consider, and you’ll need to do your homework before jumping into the best solution for your particular situation. Let’s look at two from a fairly high level: OS virtualization and application streaming.

OS virtualization is the more mature of the two options and has been around for years. The concept is relatively simple: You essentially install one OS inside of another.

Think of the host OS acting as a container for the virtualized OS. This method still requires you to maintain the legacy OS, but the benefits you achieve will help you protect it through the insulation of the host OS. Two of these benefits are the ability to host the legacy system on newer hardware and the ability to quickly back up and restore the virtual session through the use of snapshots.

In most situations, you can convert your legacy environment through a physical-to-virtual process. This eliminates the need to completely rebuild the legacy server. If the host system is configured properly, and the requirements for the legacy application allow, you can likely host the new virtualized version of your legacy application alongside other virtual environments on the same host. This helps consolidate hardware and reduce maintenance costs.

The other and less-mature option for virtualizing your legacy application is through application streaming. This technology is much newer than OS virtualization. For some vendors this technology is still in its infancy, but the benefits of this approach might outweigh those of OS virtualization.

With application streaming, you remove the legacy OS completely and encapsulate the application in its own virtual stream, meeting all requirements once fulfilled by the legacy OS. Again, this is the less-mature technology in the virtualization world, and it might not support all applications.

You’ll need to thoroughly investigate and test your approach. That said, if your application works with this method, you can remove the underlying outdated OS completely. At that point, you can stream (or present) the application to any currently supported Windows OS.

This approach has another benefit. It lets you include application components in the encapsulated stream. This is huge when you consider the traditional limitations of certain applications and their inability to reside on the same OSes with older or newer versions of themselves.

A good example of this would be the Java runtime. I recently configured a similar scenario in a test environment where I “streamed” Internet Explorer 6, Internet Explorer 7 and Internet Explorer 8 to all run on the same OS. This provided the Web developer with the ability to test his code on various versions of Internet Explorer all running on the same machine and removed the need for three individual test machines, each running a different version of Internet Explorer.

This type of experiment outlines how well-suited virtualization is as a technology to simultaneously support legacy applications and current line-of-business applications, whether as a test or in a real-world environment.

Raymond Chen

Thomas Olzak is the director of information security at HCR ManorCare, an Ohio-based short- and long-term rehabilitation and medical care provider with more than 500 locations spread throughout 32 states. Jason Boomer, Robert Keefer and James Sabovik also contributed to this article and the book from which it’s excerpted.

©2011 Elsevier Inc. All rights reserved. Printed with permission from Syngress, an imprint of Elsevier. Copyright 2011. “Microsoft Virtualization” by Thomas Olzak. For more information on this title and other similar books, please visit

Related Content