If Amazon’s major service outage in April raised concerns about the cloud’s reliability, this recent cNet article might be worth taking a look at. According to the article, the very nature of the cloud is unique in its highly available and elastic infrastructure, and its redundancy doesn’t only depend on “hardware resiliency” as it would in a traditional data center, but on the availability of “more of the same” resources.
What does this mean exactly? It means that when a machine fails, there are additional resources on which to dynamically redistribute the load, maintaining service even in the event of a system failure. In Amazon’s case, human error contributed to the failure and, in effect, prevented their cloud service from doing what it was designed to do. The result was 7 days of downtime for their customers.
The main argument posed in cNet’s article in defense of the cloud is that the appropriate provisions should be made before running your application in any computing environment, be it an on-premise data center or a cloud stack. Availability will always be an issue, and the article advises that when choosing a cloud environment, or any environment, it should always be assumed that there will be crashes, malfunctions, and failures, and to anticipate them appropriately.
“Ideally,” says the article, “handling [failures] should be as automated as possible so database administrators don’t need to be on-call 24/7 to prepare for the next failure.”
The cloud’s “elastic” quality also allows for real-time scalability without the limitations of a single server or resource cap. Simply put, there are really good reasons to choose the cloud, and the reasons not to are realistically no different than the reasons not to go with any other form of hosting.