A D V E R T I S E M E N T
As customers of a web hosting company, we expect our websites to be
constantly available 24 hours per day, 7 days per week, 365 days per year. Our
website visitors expect this too - especially if they're paying customers.
Availability is one of the biggest challenges for hosting providers. In an
ideal world, all websites would be available 100% of the time. There would be no
downtime - ever.
In reality, 100% availability is a big ask for any hosting provider. There's
always a small chance something could go wrong. Hosting providers rely on many
factors - some of which may be out of their control. A good hosting provider
will spend millions of dollars on their attempts to provide availability, but
even then, they may still only be able to offer say, 99.999% availability.
Lets look at some of the things that could impact on availability:
- Hardware failure (for example, faulty RAM)
- Software failure
- Virus infection
- Denial of Service (DOS) attack
- Network security is compromised (for example, an unauthorised hacker has
gained access and decides to do some damage)
- Internet backbone link becomes unavailable
- Power outage
- Natural disaster (for example, earthquake, flood, hurricane)
- Terroist attack
- Customer's code is inefficient (or just plain wrong!)
- And plenty more...
A good hosting provider will have systems in place to mitigate these risks.
For example, they will have multiple sources of power, from multiple
suppliers. They will also have diesel generators in place, just in case all
suppliers have a problem. They may even have backup diesel generators, just in
case the first ones fail. They will ensure that they have many days/weeks worth
of diesel. And, they will have an arrangement with a local diesel supplier, just
in case they run out of diesel!
The above scenario is an example of fault tolerance. Fault tolerance
means to ensure the availability of a network resource even when there's a major
problem. A power outage is just one of the many things that can go wrong.
Hosting providers achieve fault tolerance through redundancy.
Redundancy generally refers to having an exact replica of a network resource,
ready to go in case the other one fails. Furthermore, there can be no downtime
between the first one failing and the second one coming online. For example, a
website could be hosted across two servers - each being mirrors of the other. If
one server becomes unavailable, a load balancer will detect this and switch all
traffic to the other server. The website users won't even know it happened.
In a hosting environment, there are many network devices. There are DNS
servers, routers, firewalls, load balancers and more. A good hosting provider
will ensure that there are at least two of each of these.
This is fine, but what if you are renting a dedicated server? To provide
redundancy, you would need to rent two dedicated servers instead of one. This
would effectively double your costs. And how would you ensure content is exactly
the same on both computers? You would need some form of replication to keep them
in synch. And how would the system know which computer to direct the traffic to?
You would need a load balancer - or should we make that two load balancers? And
what if you had a dedicated database server...?
So you can see that providing availability can get very expensive. At some
point, you need to weigh up the impact of occasional downtime with the cost of
You might decide to wear the risk and verify that your hosting provider has
processes in place to get your website back online ASAP in the event of
Most hosting providers guarantee a certain level of availability. For
example, one provider might guarantee 99.8% and another one might guarantee
99.999%. Whether they can keep to their promise is another thing.
A good hosting provider will compensate its customers if it drops below the
You should hold your hosting provider accountable for keeping their
availability promise, whether its 99.8% or 99.999% availability. If availability
drops below the promised percentage, you should make sure you receive
compensation. This might be in the form of re-imbursement, or a credit against
your account. If you don't receive compensation, consider taking your business
Of course, availability and compensation needs to be agreed in advance
between you and your hosting provider. A good hosting provider will have all
this outlined in their standard hosting agreement. However, depending on the
size of your business, you might require a separate agreement.
You should be proactive in monitoring your hosting provider's performance.
Don't just let them tell you how well they did, find out for yourself.
Now, by saying this, I'm not suggesting that you sit at your computer 24/7,
hitting the refresh button, waiting for your website to go down! There are
other, more efficient, ways of monitoring your website's availability.
The next lesson explains a better way of monitoring your website.