Tuesday, October 14, 2008

What's wrong with a cloudy world?

I've just finished reading the computerworld interview on cloud computing with Barry X Lynn, of 3Tera.

Whilst I would certainly agree that the shift from product to a service based economy is fairly inevitable for a ubiquitous and well defined activity, the problem with the cloud is the lack of second sourcing options i.e. the lack of interoperability, portability and easy switching between providers at equivalent levels of the computing stack.

As Bert, also of 3Tera, said on Tim Anderson's blog :-

"Interoperability certainly is a major concern for users of cloud computing".

Well, I completely agree and that's why I've been going on about the need for open sourced standards (i.e. the standards in the cloud are operational open sourced pieces of code) since 2006. Open source in this context makes sense as any ubiquitous activity is at best a cost of doing business and hence feature differentiation is of no value. The problem we're facing is that many product vendors are not prepared for a shift to a service world and competition based upon price and quality of service. What many vendors want to create is "my product as a service".

This mentality could create fairly vicious forms of lock-in with a loss of control and a lack of competitive pricing pressures. This is what Richard Stallman was arguing against and he is right, a proprietary cloud could easily turn into a trap that would cost more and more over time.

Barry countered this view with the idea that it's "no more stupid than picking up a telephone, getting a dial tone and completing a call anywhere in the world through interconnected "clouds" of phone company networks. Well, I must admit I don't know what the situation is in the U.S, but in the U.K. when I wish to change phone company, I can. Also when I switch between phone companies, I don't find that I either have to rewire my entire home or that essential data is somehow lost or changed. This is the problem with analogies to electricity or phone providers, unlike those utilities we have a relationship with cloud vendors through our data.

To make a fair comparison with the phone industry, then you would have to imagine an "open" system whereby you could simply change phone companies and a "closed" system whereby when you switch phone company then not only does your number change but so does every number you used to call and to top it all you also have to rewire your entire house in the process. Of course it would be madness, you'd effectively be locked-in and Stallman is right to called such a system "stupid".

A cloudy world without competitive markets based upon open sourced standards is a potential lock-in nightmare.

Caveat Emptor.


Anonymous said...

Hello Simon Wardley. Barry X Lynn here.

Though I am not sure if your post is debunking mine or is a plea for standards, which is a good thing for sure (or both), the same ego that causes a man like me to Google Alert his own name, what brought me to your post, tugs on me to engage in friendly banter.

To quote you, "To make a fair comparison with the phone industry, then you would have to imagine an 'open' system whereby you could simply change phone companies ....". Bingo!!! I have quite an imagination, don't I?

I take Stallman at face value. Never met the guy. Don't know him. He certainly seems like a compellingly interesting fellow. But what I read of his says, exactly, and succinctly, without your between the lines insight, that "cloud computing is 'stupidity'".

Now, if you are accurate in interpreting what he REALLY thinks is stupid, then I'd have to largely agree.

You will note that I use the term "cloud done right" lately like a parrot who hasn't had a cracker in days. I also plagiarize one of my favorite lines from my personal favorite marketing dude, Bert Armijo, whose name you also mention in your post (he really is a great guy despite the fact that he and I usually agree on almost anything Cloud). "Cloud Computing is not a substitute for bad architecture."

The dangers you (and Stallman) allude to are real. Each time I see someone promoting something proprietary that creates "lock in traps", I pray that the Department of Homeland Security puts us on an Orange Alert and stops wasting those things on threats of minor terrorism.

I am not going to go as far as to take up your cause for open source standards because I don't know what the Cloud Computing standards ultimately will be or what they should ultimately be. I've seen successful standards come out of adoption of proprietary APIs and protocols. I've seen success with open source. I've seen successful standards happen on an ad hoc basis through pervasive use. I've seen success come from standards by committee.

What the successes all had in common had little to do with their religion or mode of accomplishment. They all had to do with the recognition that something was important enough that it needed to become pervasive, and the players passionate enough about it to do whatever it takes to make them pervasive were the same players who made the standards happen.

Now if you (or Stallman) do not believe that what we call Cloud Computing today, the ability to access scalable information technology on demand, on a pay per use basis, should be and will be pervasive, then we'd have to agree to disagree (in a friendly banter sort of way). But I doubt that's the case.

We agree, that Cloud Computing done right (Barry want a cracker?) requires interoperability among Clouds. Our Cloudware TM architecture not only provides for for an infrastructure delivery network that enables interoperability, but for elements from different Clouds to co-exist in the same applications. http://www.3tera.com/Cloud-computing We see an eventual world where data center operators can publish idle hardware into the Cloud, software providers can publish pay per use software into the Cloud and subscribers can use these resources on a metered basis for anything from virtual desktops to comprehensive virtual data centers and everything in between.

I think (I hope) we all foresee a world (you, me, Stallman, my geriatric mother with the paper cup and string - all of us) where information technology is a utility accessible by the masses. After all, computing is no longer an esoteric mysterious tool for the scientific and business elite. It's the way everything gets done these days.

So, the comparison to electricity and telephones becomes, IMO, quite relevant. You don't suppose for a second that minutes after A.G. Bell's first telephone came off the workbench that the plan was in place that enabled telephones all over the world to inter-operate, do you? Heck! Wars between Edison and Westinghouse over direct current vs. alternating current raged on well before we had any electricity available to any grid with all appliances being able to access it by simply plugging them in.

That is the MOST salient point - Cloud Computing is importnat enough for these "wars" to develop and result in an outcome of pervasiveness.

Before there was interoperability among telephones, we had operators manually make connections for us. If today, we still used that mode of delivery, and every man woman and child in America was a telephone operator, only a teeny fraction of the calls we need to place would get through.

So, yes, Computing pervasiveness will occur just as it did for telephone and electricity. The main difference is that Moore's Law dictates that it will happen infinitely faster.


swardley said...

Hi Barry,

Good to hear from you and thanks for stopping by.

I'm not debunking you, I think you made good points but then so does Stallman and there is common ground.

OK, we both agree with an "open" system in which you can simply switch between providers. From reading Stallman's article, it seems that his main objection is to the dangers of large clouds based upon closed source technology, which is the same thing because in the cloud world an "open' system would require that the entire stack is open sourced.

As for Bert, he's a great guy, we've had a few gentle disagreements in the past particular over standards, innovation and open source. I do understand where you views but I've seen the subversion of standards when not supported by successful open source platforms and hence I tend to take the view that the emergent standards in the cloud will need to be based upon operational open source code.

I talked about this back at OSCON in 2007 (video in link) in case it is of interest to you.

As for Cloud Computing being pervasive, I've been a long fan of the move toward ubiquitous service and I even built a utility computing cloud back in 2005/06. The service was at the PaaS level (though it was called FaaS back then).

As for the distinction with the electricity / telephone industry and utility computing, the simple fact is that we are infrastructurally neutral to the electricity / telephone industry whilst we have a relationship with our cloud vendors - it's called our data / code / framework etc.

That said, I'm fully aware of the history of the electricity industry and yes it did take some time for interoperability to develop as society sorted through the various interesting concepts such as therapeutic electricity and the thirteen different types of electricity.

Hopefully, in the cloud world, things will move a little more quickly.

Of course it's your business, but do tell Bert that I still reckon you should have open sourced AppLogic ages ago and attempted to get it adopted as the standard with a business model built upon service & support :-)

Anonymous said...

Hi, again. BXL here. Yes, hopefully, if for no other reason, for the good of the pocketbooks and wallets of those of us in the Cloud business, things will move much faster than they did for electricity (I do so believe in Moore's Law-like phenomena when it's beneficial to me to do so).

I really think it all comes down to this. Cloud Computing is a buzz term du jour - it's hot! Whatever we call it, though, we are all thinking about the next generation of how data will be processed - the next generation of the data center so to speak. It's becoming clearer that the answer to this is the complete abstraction of everything an application needs to run, except the hardware, EVERYTHING - code, OS, middleware, DBMS, data, infrastructure (firewalls, load balancers, web servers, app servers, database servers, etc.), configuration, policies, etc., from the hardware. The hardware can be anywhere and just about anything (and any amount as needed) and the abstraction of the application is what it is, unchanging.

As this comes about, there will be big winners and big losers. Regardless, all of the survivors will have to inter-operate. We are in dead violent agreement on that, for sure. How that happens will be an interesting thing to participate in and observe.

Are we having fun yet?


swardley said...

Hi Barry,

"It's becoming clearer that the answer to this is the complete abstraction of everything"

I completely agree.

The long term battle for the cloud world isn't even in the hardware layer (from bare bones to virtualisation layer to operating system). All of these layers will become less visible over time, they'll exist but the focus will be on the framework layer (the platform and integrated services from databases, storage and so forth)

The frameworks will provide the primitives in which the application operates and the actual mechanics of the services underlying any primitives and the operation of the framework will be abstracted from the applications itself.

The future world is one of object.post and object.get and where application code is just as likely to shift to where the data resides as data is to shift to where the application resides.

The mechanics of this, the underlying hardware structure will be buried under layers of standardised abstraction. These layers will all be open sourced but we first need to get though this transitional stage of hybrid solutions and halfway houses between product and services.