Cloud Predictions Beyond 2011 – 2: The need for a cloud abstraction model

If the cloud is to fulfill on its promise we need to start thinking of it as a cloud, not as an aggregation of its components (such as VMs etc.)

As mentioned in a previous post I‘ll use some of my upcoming posts to highlight some cloud computing “megatrends” that I believe are happening – or need to happen – beyond 2011. One of these would be the creation of an “abstraction model” that can be used to think about (and eventually manage) the cloud.  A nice setup to this was done by Jen-Pierre Garbani of Forrester, who in a recent post at Computerworld UK talks about the need to Consider the Cloud as a solution not a problem.

 

In this is he uses the example of the T-ford -which was originally designed to use the exact same axle with as roman horse carriages, until someone come up with the idea of paving the roads – to argue that customers should not “design cloud use around the current organization, but redesign the IT organization around the use of cloud  .. The fundamental question of the next five years is not the cloud per se but the proliferation of services made possible by the reduced cost of technologies”.

I

 could not agree more, it is about the goal not about the means. But people keep thinking in terms of what they already know. It was Henry Ford who ones said “If I had asked people what they wanted, they would have said faster horses.” Likewise people think of clouds and especially of Infrastructure as a Service (IaaS) in terms of virtual machines.  It is time to move beyond that and think of what the machines are used for (applications/services) and start managing them at that level.

Just like we do not manage computers by focusing on the chips or the transistors inside, we should not manage clouds by focusing on the VM’s inside. We need a model that abstracts from this, just like Object Orientated models abstract programmers from having to know how underlying functions are implemented we need a cloud model that abstracts IT departments from having to know on which VM specific functions are running and from having to worry about moving them.

In that context Phil Wainwright also wrote an interesting post: This global super computer the cloud, a post that originated 10 years ago. First, it is amazing that the original article is still on-line after 10 years – imagine what it would take to do that in a pre-cloud era. Second, the idea of thinking of the cloud as a giant entity makes sense but I disagree with him when he quotes Paul Buchheit’s statement on the cloud OS: “One way of understanding this new architecture is to view the entire Internet as a single computer. This computer is a massively distributed system with billions of processors, billions of displays, exabytes of storage, and it’s spread across the entire planet”  That is the equivalent of thinking of your laptop as a massive collection of chips and transistors, or of a program you developed as a massive collection of assembler put, gets and goto statements.

To use a new platform we need to think of it as just that, as a platform, not what it is made off. If you try to explain how electrons flow through semiconductors to explain how computers work, nobody (well almost nobody) will understand. That is why we need abstractions.

Abstractions often come in the form of models, like the client/server model or (talking about abstraction) the object oriented model or even the SQL model (abstracts from what goes on inside the database).  

Unfortunately the current cloud does not have such a  model yet – at least not one we all agree on. That is why everyone is trying so hard to slap old models onto it and see whether they stick. For example for IaaS (infrastructure as a Service) most are trying to use models of (virtual) machines that are somehow interconnected, which makes everything overly complex and cumbersome.

What we need is a model that describes the new platform, without falling into the trap of describing the underlying components (describing a laptop by listing transistors). The model most likely will be service oriented and should be implementation agnostic (REST or SOAP, Amazon or P2P, iOS or Android, Flash or HTML5). Let’s have a look what was written 10 years ago that we could use for this, my bet would be on some of the Object Oriented models out there.



PS Feel free to follow me on Twitter @GregorPetri and read this blog at blog.gregorpetri.com

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