I am in the midst of writing a book on Cloud Standards (expected to be available on or about June 20, 2012). There are only a handful of standards that apply directly to clouds, but the number of standards that cloud computing inherently relies upon is enormous. I have lots of leeway in writing about standards in the book, mainly because it is hard to think of a computing standard that does not apply to cloud in some way.
There is a reason for that: cloud is the culmination of almost everything in computing up to now. Of course, that means that there is very little in cloud that is new (yes, I did just suggest cloud is old, too). The components and technologies that make up a cloud implementation are the same technologies that have been used for decades. So, why all the talk about cloud today? What's new are the ways all the technology fits together, the scale of its application, and its wide variety of uses.
Look at the giant data centers built by providers like Google and Amazon. They have racks and racks of perfectly ordinary computers with processors and memory that are faster and more compact than those of twenty years ago, but otherwise, not very different. Most storage is still spinning disks. Cloud data centers communicate with their consumers via networks that follow standards that have been around for twenty years. Yet they do things that have never been done before. And their cumulative complexity is truly amazing.
I did some Google research and back of the envelope calculation the other day, and promptly gave up. I tried to compare the complexity of a 737 airliner (which I happen to have been slightly involved with designing) and a cloud data center. Boeing says that a 737 has 367,000 parts. Google says that one of its data centers has 650,000 cores. Is it fair to compare airplane parts to cores? That is the point where I gave up, but think about this: which is harder? To rivet, bolt, and glue together 367,000 parts and make them fly? Or wire up 650,000 processors and make them tell me that there are 367,000 parts in a 737? Both are staggering tasks and command tremendous respect, but the data center has the numbers.
This brings me back to standards, which occupy quite a few of my thoughts lately - makes sense for someone writing a book on the subject. How is it possible to make these absurdly complex clouds work? Aside from the impressive effort of the engineers who put them together and keep them working, it is also because they are built on experience that has been accumulating for the last half century. And much of that experience is embodied in the standards that hold clouds together. For example, the interconnection between processors in a data center is often Ethernet, the standard for the data link layer in networking since the ‘80s. Why does it work in this extreme application? Because experience has tuned it and streamlined it, and made it efficient enough to do a job that far exceeds its original intent.
It is precisely because of this experience that clouds can be both complex and reliable and why I am enjoying writing my book. Over the next few months, I will share with you some of the random thoughts that come up as I'm writing. I hope you enjoy the posts, and I look forward to sharing the final book with you this summer.
*Image courtesy of stock.xchang.