| Website Availability
 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 failureVirus infectionDenial of Service (DOS) attackNetwork security is compromised (for example, an unauthorised hacker has 
	gained access and decides to do some damage)Internet backbone link becomes unavailablePower outageFireNatural disaster (for example, earthquake, flood, hurricane)Terroist attackCustomer'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! 
 Fault Tolerance
 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 
availability. 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 
downtime. 
 99.999% Availability?
 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 
agreed availability. 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 
elsewhere. 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. 
 Monitoring
 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. |