According to Wikipedia, the earliest known reference to the term “cloud computing” is a Compaq internal document from 1996. While cloud computing is now old enough to buy a pack of cigarettes or the latest issue of Playboy, much like most 18 year old humans it still isn’t exactly sure what it is now or what it will be in the future.
While very few things last 18 years in technology, the relics that we still use from those bygone eras are very well defined and leave little room for interpretation. Sure, things can change and slight modifications can be made over time as we discover new and better ways of implementing technology. However, cloud computing is still suffering from an identity crisis after all these years and if you ask 10 different people what it means you can (and usually will) get 10 different answers.
The type of cloud computing that seems to suffer the most from this confusion is infrastructure as-a-service (IaaS). IaaS is simply a large pool of computing resources with which users can dynamically provision virtual machines to host their applications. Seems simple enough, right? So where does all the confusion come from?
Blame the hosting industry.
When it comes to cloud computing, there are literally dozens of different platforms that hosting providers can choose to implement. Some of the more well known are VMWare, OpenStack, and OnApp. While most of these cloud computing platforms are very similar with regards to core functionality, they can have wildly different feature sets. Since everyone wants to be a “cloud” provider these days, they have to create their own definition of cloud that conforms to the features of the platform that they chose to implement. You can probably begin to see how this becomes problematic. Add to this the fact that there is no standard definition that specifies which features must be included to be considered a true cloud computing platform, and we start to have a real mess on our hands.
I won’t be analyzing the entire list of possible cloud features in this article. Instead I want to focus on one feature that I think should be required for any cloud platform: redundancy.
One of the compelling things about cloud computing is that it abstracts the physical hardware to the point where it becomes almost irrelevant. The user doesn’t know anything about the physical hardware that powers the cloud platform they are using, and they shouldn’t need to. From the service provider’s perspective, we can forgo having to spend exorbitant amounts of money on expensive and specialized hardware and can build well-performing and redundant clouds using cheaper commodity hardware. It’s a win-win for everybody.
In a redundant environment, the cloud platform insulates the user from downtime by automatically detecting the failure of a physical machine and migrating the virtual machines that were running on it to another healthy server in that cloud. The user’s website continues to sell autographed Justin Bieber memorabilia and the service provider receives a friendly alert that one of their servers has failed and needs to be replaced.
Many so-called cloud providers currently do not have redundancy built into their platforms. The user’s virtual machine and its data exist on a single physical server within the provider’s infrastructure. This is typically marketed as a VPS (virtual private server). When that single server experiences a failure, all of the virtual machines on that server experience downtime. In some cases this can be several hours or days depending on the type of failure and if the provider has spare servers or parts to repair it in a timely manner. This also means that there is no data redundancy in the cloud platform either. If there is a catastrophic failure of that server’s storage system, all of Grandma’s digital photos and blog posts about her trip to Alaska are gone forever (I hope you reminded Grandma to make backups).
So while that $4 a month VPS package from “Super Cheap Cloud Host USA” may seem like a good deal now, how much would you lose if your website was down for a few hours? How about a few days? What if your data was completely lost, never to return?
If you think you are safe by going with one of the 800-pound gorillas of the cloud hosting market, you may want to think again. It won’t take much time with your preferred search engine to find horror stories of customers having long outages with many of the major cloud providers, some of which made no attempt to hide the fact that their customer’s “cloud” server exists only on a single physical machine.
At Xfernet, our ActiveGrid cloud services are based on the OnApp cloud platform which includes both failover and data redundancy as standard features. Virtual machines are automatically restarted on healthy physical servers in the event of a hardware failure or server crash, and all data volumes are mirrored across multiple machines to ensure that there will always be a good copy of the user’s data available. We believe that these key features are at the core of what defines a true cloud computing platform.