What is High Availability? Is it Clustering? Is it Virtualization? Is it Cloud?
It is all, yet neither. Let me explain…
The term “High Availability” is commonly used to describe a service which has been configured with less of a chance that it could go offline. For example, this can be done by Clustering. When you offer a clustered service, the chance that the service goes offline greatly diminish, yet it can still go down. When the underlying storage goes offline, for example, the service will become unavailable… clustered or not. This goes the same for Virtualization and Cloud. Of course you can use technologies like Storage Virtualization, but more about that in a few lines.
With this in mind, I have split the term “High Availability” into 3 sub-groups; High, Higher and Highest Availability.
High Availability
I see High Availability as a service that has been made highly available using one solution restricted to a local datacenter, such as clustering.
This would mean that if the underlying storage goes down, the service will still go down… clustered or not.
Higher Availability
I see Higher Availability as a service that has been made highly available using multiple solutions but still restricted to a single datacenter, clustering and storage virtualization for example.
Yet still there is a chance for the service to go down… If the entire datacenter goes down then so does your service.
Highest Availability
I see Higher Availability as a service that has been made highly available by using multiple solutions spread over multiple datacenters: Clustering, Network Load Balancing, Virtualization and Storage Virtualization for example.
This solution will bring the service to the highest level of availability that is possible with current technologies.
The business perspective
Each of these levels has its own business requirements attached to them. The higher level of availability you offer, the more it costs. Therefor it is critical to understand the business needs; can the service be offline for a maximum of one day? Or is even 1 hour unacceptable?
Now why this is so important? Most CFO’s are not very happy with the amount of money that goes into IT departments. When you only offer the critical services in a Highest Availability solution and the lesser critical services in a Higher or High Availability solution, instead of everything in a Highest Availability solution, costs in general will go down. The CFO will be happy because costs are going down, but the company will still be offered the availability of the services they require.
From a business perspective you would want to balance the costs of making a service (highest?) available, against the costs that will come with some downtime.
When you do this, you will notice that businesses suddenly don’t require their service to be Highest Available, but that they are satisfied with “just” a High Available service.
When you offer an 99,999% uptime, this will result in a maximum downtime of about eight minutes per year; just something to keep in mind before giving a service a level of availability…
Cloudy
Since “Cloud” is a big hype right now, you could ask the question where the cloud comes in in this story?
This depends on your cloud provider. If they have consolidated their entire cloud infrastructure to one datacenter, I don’t think they can claim to have a “Highest Availability” solution.
When outsourcing your service to a cloud provider, it is critical to make sure they offer the level of availability your business demands. Personally, I always ask them how they make the service available… just to make sure the term “High Availability” is not misused.
Example case
Let’s take a company whose main business is sales.
They define two High Availability services: SQL Servers (other than those Highest and Higher availability services) and the Intranet site.
They define two Higher Availability services: Remote Desktop Services and their data (file shares).
They define two Highest Availability services: Mail and CRM.
In this case, High Available services will be made available through Clustering (SQL Servers) and Network Load Balancing (Intranet site).
However, Higher Available services will be made available through Virtualization + Network Load Balancing (Remote Desktop Services) and Virtualization + Distributed File System (file shares).
And last, Highest Available services will be made available through Virtualization, Clustering, Network Load Balancing and Storage Virtualization.
You can do this in your own environment, but since the cloud is here you also have the option to outsource this to a cloud. Just be sure to check your Service Level Agreement (SLA) to make sure you get the availability your business demands.
Note
Which solutions can be combined to make a service available (does not matter which level) depends on the support of the vendor which service you want to make available. For example, some vendors (still!!) don’t support virtualization or clustering of their product.
Be sure to check this before implementing your solution.