Continuing out examination of hosting options from the last post, perhaps, the cheaper options have lower reliability. Here are the availability numbers for our providers:
Provider |
Compute SLA (%) |
Go Daddy |
99.9 |
ORCS Web |
99.9 |
Host Gator |
99.9 |
Rackspace |
Repair within one hour |
Amazon |
99.95 |
Azure |
99.95 |
If Amazon and Azure are more expensive with a similar SLA, why use them?
Availability numbers do not tell the whole story.
The rate for cloud computing infrastructure is more expensive because it allows you to pay only for what you use. Not only does this allow you to use computing resources more economically, it allows you to design around outages. With a cloud computing infrastructure, you can reach, if you wish to pay for it,
very close to 100% availability.
This gets to the essence of the matter. You are doing cloud computing when you are interested in one of two things:
-
Paying for only the computing resources you use so you do not have to buy
enough hardware for peak scenarios that happen infrequently.
-
You want to achieve very high reliability, with almost no downtime. You have to design for failure.
We often refer to these goals as scalability and availability. Scalability is
making sure your application can handle increase load with reasonable
performance. Availability is making sure your application has reasonable
performance for a reasonable amount of time. What is reasonable, depends on the
economics of your business environment.
Technically they are different problems. Depending on your system load, you
could have reasonable availability for the vast majority of the times your
customer wants, and just be very unresponsive under very heavy loads. Or,
you could handle very large loads for small periods of time, and be very
unresponsive the remainder of the time.
But for most applications they are closely related.
To have high scalability requires you not only to be able to acquire more
computing resources, but it requires you to be able to detect and handle
failures of existing computing resources. High availability requires the
same thing.
Designing for failure is cloud computing.