The Cloud – Not A Crock of Shit
Even though a cloud’s white curtain in a far-off corner flashed
An’ the hypnotic splattered mist was slowly lifting
Electric light still struck like arrows, fired but for the ones
Condemned to drift or else be kept from drifting
- CHIMES OF FREEDOM
It was just over a year ago when a younger, more naive Jon declared the The Cloud is a Crock of Shit. Well, I’m a little wiser now and I’m overjoyed to report that, in fact, it isn’t. Cloud Computing is very real, and something you need to know about. I HEART clouds.
In my defense, when I wrote my blog post a year ago, 98% of the time the phrase “The Cloud” was used it was by people that didn’t have a clue what it meant. This has now dropped to 44% which means that, more often than not, you should listen to people that say it. Sadly, the number is still about 85% for people with the word “Sales” or “Business” on their business cards, so continue to ignore them. And the wikipedia entry, while improved, is still is desparate need of an update.
So what is Cloud Computing? There are lots of definitions out there. But let’s distill the essence of Cloud Computing by listing things that Cloud Computing is that good old Hosted Services (*aas) and Grid/Utility Computing are NOT. They are:
|Cloud Computing||Grid/Utility Computing||Hosted *aas||Your Server Room|
|Infrastructure Services – offers a wide variety of platform services||YES||NO||NO||YES|
|Multi-tenancy – resources shared by a vast set of users||YES||SOMETIMES||SOMETIMES||NO|
|Usage Based Pricing – very fine grained||YES||SOMETIMES||NO||NO|
|Scalability – ramped up (with no cap) or down in near real time||YES||SOMETIMES||NO||NO|
|Programmability – provisioning can be accessed via software||YES||NO||NO||NO|
|Virtualisation – Machines are virtual, not physical||MAYBE||MAYBE||MAYBE||MAYBE|
Firstly, you’ll notice that the concept of virtualisation is nothing to do with Cloud Computing. It’s an orthogonal concern. I like to think of a Cloud Computing platform a bit like a Java JEE App Server. The App Server provides a Java Application ways to access resources like storage, memory, caching, queuing, messaging and more – all with a standard API. A Cloud Computing API offers access to all of this, and more. Plus an API to allow the programmer to provision more resources. However, unlike the JEE example, the APIs to different cloud providers isn’t yet standard. But this is what people like The Open Cloud Consortium and Unified Cloud Interface Project are working on.
But I talked about this last time. Back then, however, I didn’t have a clue what kind of APIs they were trying to standardise. Now I’m no expert in this area, after all I was one of the Great Cloud Unwashed a meagre year ago. So the table below that I’ve thrown together to illustrate Cloud Capability no doubt has plenty of errors and ommissions. So please correct me via the comments and I’ll update it. If something like this already exists somewhere in the interwebitutes, I couldn’t find it.
|CAPABILITY||Microsoft Azure||Amazon Web Services (AWS)||Google App Engine (GAE)|
|Infrastructure Provisioning||Windows Azure||Amazon Elastic Compute Cloud (Amazon EC2)||n/a – You just get the App Engine|
|NoSQL Database||Azure Table Services||Amazon SimpleDB||App Engine Data Store (BigTable + GFS)|
|Relational Database||SQL Azure||Amazon Relational Database Service (Amazon RDS) – MySQL||n/a|
|Blob/Doc Storage||Azure Blob Storage||Amazon Simple Storage Service (Amazon S3)||App Engine Data Store (Google File System)|
|Queuing||Azure Queue Services||Amazon Simple Queue Service (Amazon SQS)||Task Queues|
|Messaging / Notifications||n/a||Amazon Simple Notification Service (Amazon SNS)||App Engine Mail|
|Data Processing||n/a||Amazon Elastic MapReduce (Hadoop)||Google MapReduce|
|Payment||n/a||Amazon Flexible Payments Service (Amazon FPS)||n/a (Google Checkout not part of GAE)|
|Public Datasets||Codename “Dallas”||Amazon Public Data Sets||n/a|
Office Live Workspace
Business Productivity Online Standard Suite (BPOS)
|n/a||Google Apps (Docs, etc)|
Very random aside – if you don’t know what memcached does, read the best ever overview of a technology ever written – An Adventure In Learning memcached.
Once you grock the Cloud Computing model, it becomes clear that this model introduces many questions around security and privacy. I’m getting rather weary of people saying they don’t like the idea of putting data on cloud services (and *aaS services like Google Docs and others). They’re statistically far more secure than internal networks. There are also interesting commercial models and legal questions but, seeing this blog isn’t Jon On Commerce or Jon On The Law, I’ll leave those alone for now.
Virtual Private Clouds
So we know what a Public Cloud is. And it all makes sense, right? But what about Virtual Private Clouds. That was the question, from Ian Truscott, that made me write this post.
Well, Amazon offer their own Virtual Private Cloud service. In essence, this gives you a VPN bewteen your local network and a dedicated resources on the Amazon Web Services. You can then treat your Amazon instances as if they were part of your local network. In addition to the standard AWS fees, you also pay for each hour that your VPN is in place, and for the data transferred. I’ve stolen their image so I don’t have to draw my own knock-off which wouldn’t be anywhere near as pretty:
My colleague @justincormack got me looking into Eucalyptus - a product which allows you to create your own physical Private Cloud – entirely hosted by you. This works in almost the opposite way to the Amazon VPC Service. You use your own hardware, and install their software over the top. However, they also support the Amazon EC2 APIs, which allows you to administer your cloud as you would an Amazon Cloud and, even better, move resources between your cloud and Amazon’s. So you see, Ian, Private Clouds and Virtual Private Clouds are real and more than just hosting.
But enough of my blabbering. To keep abreast of all things cloud, follow these peeps on Twitter. They keep me in the know:
- Christofer Hoff (@Beaker)
- James Urquhart (@jamesurquhart)
- steve clayton (@stevecla)
- Joe Drumgoole (@jdrumgoole)
And as I said earlier, please comment with corrections to my Cloud Capability Table. I’m positive it is strewn with errors. Help me!