Tip

How to save money with application-level high availability

For modern enterprise IT, failure is not an option. So IT teams have worked hard to make individual x86 servers highly available to avoid failure. While virtualization platforms aim to extend this reliability by making virtual machines highly fault tolerant and available, applications often come with fault tolerant features built in. And, using application-level high availability can cut costs.

Implementing traditional enterprise-level HA

To achieve enterprise-level availability, IT teams store virtual machines (VMs) on expensive shared storage. In fact, many customers have a

    Requires Free Membership to View

storage area network (SAN) solely for VMs. Storing VMs on the SAN allows you to automatically restart them if the host fails, which makes the VMs more highly available than physical machines.

Avoiding VM downtime during physical host maintenance also defines enterprise-level availability. Live migration allows you to move VMs from one host to another to perform physical host maintenance without downtime. Both live migration and automated restart require shared storage, which comprises a significant part of the capital cost to implement virtualization. In addition, these features may require a more expensive license for the virtualization platform. Much of enterprise IT considers these critical requirements, but applications that provide their own high availability could change this perception.

Applications bring high-availability features to the virtualization table

Many vendors now design applications to run on a lot of small VMs rather than one or two large VMs. Web server and terminal server farms are classic examples: None of the VMs contain persistent data, and users can access the application as long as there are enough small VMs available to share the load. Some NoSQL databases and Hadoop clusters are also flexible enough to run on a collection of small VMs. In these cases, the application manages the loss of nodes and can reallocate workloads, rendering individual nodes disposable.

Given that individual VMs are disposable, you do not need shared storage. Instead, you can store VMs on disks inside the virtualization host. Local disk capacity in hosts costs less than shared storage and can even cut storage costs in half. Because these applications automatically balance workloads and manage VMs, you may not need features like automated VM restart, which could eliminate the need for some virtualization management software. You might also be able to use a less-expensive virtualization platform license. Building a farm with the free edition of your virtualization platform would further reduce the capital cost of implementing high availability.

Application-level HA products contain some elements that are single VM instances with persistent data where the VM must be made highly available. For example, the NameNode and JobTracker roles within Hadoop still require shared storage and automated restart following a host failure.

Not all applications scale out, meaning you still need an enterprise-level virtualization platform to house VMs, but you may not need to provide enterprise-level high availability for every VM. When implementing applications that provide high availability by scaling out, a virtualization platform that's less highly available may be more practical.

This was first published in November 2012

Disclaimer: Our Tips Exchange is a forum for you to share technical advice and expertise with your peers and to learn from other enterprise IT professionals. TechTarget provides the infrastructure to facilitate this sharing of information. However, we cannot guarantee the accuracy or validity of the material submitted. You agree that your use of the Ask The Expert services and your reliance on any questions, answers, information or other materials received through this Web site is at your own risk.