Skip to content

Wot I Learned at Uni: A Definition of Cloud Computing and How PNUTS Gets It Right

07/03/2012

Late in my Engineering studies, at a point where I had already taken the majority of my subjects, I was sitting in one of the computer labs, when Dr. Ying Zhou entered. She asked the handful of students to leave, since she was about to begin lecturing.

I struck up a conversation, asking  her what subject she was teaching. She told me it was a new class: Cloud Computing – one of the advanced IT electives. These electives are named generically, and seem to be used as containers for academics to teach things that are new and interesting, with a minimum of faculty red tape.

Well, I was fascinated. This was at a point in time when you would only really see the term ‘Cloud’ popping up often in industry – on Amazon blogs, or on Hacker News. It would be some time before Microsoft started dishing up their awkward ‘To The Cloud’ marketing campaign, when the term entered the zeitgeist.

I stuck around for the class, despite not being enrolled, and enjoyed it a great deal. I ended up taking the class and basing my honours thesis on some of Dr. Zhou’s research. From what I could tell early on, we would be looking at a field that was both new and old. ‘The Cloud’ was IaaS, SaaS, PaaS and everything in between, but dressed in simpler clothing. NoSQL was Berkeley DB gone viral.

Thus, the underlying logic of Larry Ellison’s fallacious assertions that people were saying all boats are cloud boats, and that orange is the new pink was not far off the mark. Of course, his rage and bemusement were exaggerated for comic effect and Oracle have since embraced the term for profit like every other sensible actor on the stage. So the cloud is a mainframe? Simmer down L-Dogz, everyone in the field knows this.

THE CLOUD? WHAT.

Despite such naysaying, the term has stuck, and for good reason. It encompasses a vast range of pre-existing technologies that have slowly become interlinked over the last couple of decades. In calling something ‘Linux’, we don’t suppose that it was created ex nihilo. Instead, the term becomes a kind of monad that helps us pull together technological ideas, allowing new ones to be born.

By no means would Dropbox, Twitter, and Reddit not have existed without the term. However, since the advent of this idea of the cloud, we have seen people create applications and APIs that blur the boundaries between the *aaS terms, allowing people to send and receive countless data types, from all manner of endpoints.

I think one of the best examples of a cloud service that captures this idea is Yahoo’s incredible PNUTS storage system, which is not really that well-known outside of Yahoo or academia (after all, it is an internal service). PNUTS allows an application developer to tune the storage properties to the exact kind of data that is being stored, in a very detailed way.

Dynamic Storage Factors in PNUTS

If a developer wants to create some kind of heavy-throughput commenting system (such as on Flickr), but doesn’t want enormous delays created by synchronous replication, they may specify that. However, if advertisements are being served in the application, then the developer will want to ensure that they are invalidated in the cache as soon as their display time is up. This too may be specified.

Static Storage Factors in PNUTS

When a developer wants to create an application that will be served internationally, and the data may only be stored/copied where it was created (due to transborder data flow regulations), they may store location information right alongside the relevant data. This is done using replica placement constraints, perhaps in a similar manner to the following:

[constraint_users_aus]
if (tablename = "users" and field('home_location') = 'australia')
{
    set 'mincopies' = 3;
    set 'exclusions' = 'US';
    constraintpriority = 1;
}

I believe that platforms such PNUTS demonstrate clearly what the term ‘Cloud’ means. What else could such technologies be termed? Even the mouthful ‘Platform for Nimble Universal Table Storage’ doesn’t cover enough of the features of PNUTS.

I suppose this has turned into an argument over semantics, but I have wanted to get it off my chest since first hearing Larry Ellison’s rant. The cloud term has been co-opted to the point of nausea, but from a technical point of view, it isn’t just a sales pitch.

Advertisements
No comments yet

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: