I was chatting with a Kusnetzky Group client the other day and he asked a question that seemed to have an obvious answer at first but, seemed more complex as we discussed it. The question was should his organization deploy a clustered solution, such as SteelEye's LifeKeeper or encapsulate applications and use a virtual machine replication technology, such as VMware's Vmotion, XenSource's Xenmotion or Virtual Iron's Virtual Iron, to accomplish something that seemed similar. The discussion went along these lines.
Before such a decision can be made, it is very important to understand what are the organization's goals. That is, what are they really trying to accomplish. Then the appropriate selection of products can follow. As the great sage, Yogi Berra once said, "If you don't know where you're going, you'll end up somewhere else."
Let's us consider typical goals and see there it leads.
- Higher performance - In this scenario, the organization hopes to segment either the application or the underlying data allowing the work to be assigned to more machines. The desired result is reducing the time it takes for the work to be accomplished when compared to running the application on a single system. Quite often, a high performance computing/grid computing monitor is selected. While virtual machine software combined with the appropriate management software for virtualized environments and virtual machine replication technology could do the job, it is likely that the imposed overhead would result lower rather than higher performance.
- Increased scalability - In this scenario, the organization hopes to allow more individuals to access a given application and understands that each instance of the application may actually execute more slowly than on a stand-alone system. In this case, a cluster manager might do a better job than virtual machine software combined with the appropriate management software for virtualized environments and virtual machine replication technology could do the job, once again it is likely that the imposed overhead would result lower levels of application performance in exchange for a more agile environment.
- Increased availability or reliability - In this scenario, the organization hopes to reduce the time lost due to planned or unplanned outages. In this case, both approaches are viable. I suspect that the cluster manager would decrease the time necessary to respond to an outage with today's technology. That advantage is likely to evaporate as microprocessor suppliers introduce more virtualization technology into their products.
- Increased agility - In this scenario, the organization hopes to optimize the use of their systems by treating it as a pool of resources that deployed in the most optimal way from moment to moment. It is likely that a solution comprised of virtual machine software combined with an orchestration manager might be in order. There are many different suppliers in this segment including Cassatt, SteelEye, Virtual Iron, etc.
- I want it all! - In this scenario, the organization hopes to increase levels of performance, scalability and reliability. They understand that the application performance would not match that found in a true grid computing environment but, they want to be able to obtain some improvement over a single system configuration. As with the agility scenario, a hybrid solution might be best.
Obviously, organizational requirements are much more complex than can be stated in a few bullets. The choices above may not be sufficient. Other layers of virtualization might be needed as well including application virtualization, network virtualization and storage virtualization.
If the journey your organization is taking to a more virtualized environment has already come to this place, what did you do? Why was that path selected?