Tuesday, April 08, 2008

Amazon vs Google

Today, there has been a lot of talk about Amazon vs Google in the cloud computing world. In my opinion Amazon could be facing a losing battle.

Why? To explain this, I first need to cover a bit of recent history. A couple of years back, the company I ran, built a utility computing service with an application development framework known as Zimki

You can think of it as an earlier GoogleAppEngine but with JavaScript not Python. Now, a key part of the product strategy was to open source the technology in order to encourage a competitive ecosystem of providers. This was designed to overcome the lock-in issues associated with Software as a Service

By aiming to create a competitive ecosystem, we were adopting an approach of a small piece of a big pie rather than a big piece of a small one.

The key to building an ecosystem is to have a standard language, a standard set of primitives and complete portability of code and data. For a developer, if your code uses these standards then you know it will run in any standard environment, no matter who the provider is. You also can switch to any other provider. To make this work required two things:-

  1. A fast way for vendors to operationally implement the standard without losing strategic control of their business. This requires open source.
  2. Some form of assurance and monitoring service, to ensure primitives were complied with and portability maintained.

Now, whilst Google hasn't provided their environment as open sourced, it has provided an open sourced SDK that "emulates all of the App Engine services on your local computer". This appears, though I'm not a python expert, to contain all the primitives and information needed to build a compatible environment to GoogleAppEngine. This allows for companies, vendors and ISPs to create competing but compatible systems. It's almost as if Google has offered a blueprint for a web operating environment and asked the rest of the community to come compete with them. It appears that way, because that's exactly what they have done.

I suspect that challenge will be taken up rather rapidly. It may not be the fastest way of creating a standard but it potentially will achieve the same result, especially if a credible competing open sourced version is created.

As soon as that ecosystem starts, I personally think it's curtains for any alternative environment that doesn't adopt such an approach. A market of competing providers is always more attractive to a consumer than a monopoly. There is one exception to this, which I've highlighted before.

Interesting times ahead. I'm becoming more impressed with Google's move and the SDK. Of course, I'm looking forward to the JavaScript version.

One last thing, if there are group of people out there suddenly thinking why don't we build a highly scaleable open sourced service which matches the standards outlined in the GoogleAppEngine Open SDK, please let me know!

--- 16th April 2014

In the end, there was little adoption and provision of an alternative GAE based upon the SDK other than the work of AppScale. Hence no market of alternative providers was built. However, the above game has been once again played (but much later) with Cloud Foundry which is providing a fully open sourced platform. This looks more promising.


James Urquhart said...

Fine, as far as it goes. However, I added a post to my blog to describe why even an open market of Google-compatible delivery options won't make this that much more important to enterprise IT.

(Actually, I love this observation for web apps...and if Google decides to move forward with "offline processing support", the game may change down the road--way down the road.)

swardley said...

Hi James,

I think we're agreeing through disagreeing.

I don't believe this is ready now for the enterprise prime time, it's a first step ... in a journey.

However, the potential, which maybe fifty steps down the line is to completely change the game of IT.

Anonymous said...

Just a note,You can't compare EC2 and Googles offering, one is the raw abstraction of hardware and storage, the other is a app environment. (Except SimpleDB)

You could build something like what Google has on top of EC2 :).

I think there are room for both, but for different markets.

swardley said...

Hi Artur,

First, good to hear you're coming over to London for Web 2.0 Strategies.

As for EC2 at the hardware level (HaaS) and GAE at the framework level (FaaS), maybe I'm explaining myself badly, but this is not the point of the discussion.

The important point is that Google has provided a blueprint in the open SDK for their framework. OK, it is not their live environment, but it should provide a means to ensure compatibility between one provider and another. Map an alternative service to the SDK and you have the starting point for portability in this utility computing world.

Once competitive utility computing markets get started at any level - HaaS / FaaS or SaaS (as I used to call them) - they will spread and become the standards.

The essential point is that an open sourced environment (in this case the open SDK) can become the open standard for which portability is built around.

It doesn't matter what level of the stack, if it works it will spread.

I personally haven't seen any signs to make me believe that Amazon is ready to embrace that open world.