Comparing Two of the Leading Software Platforms in the Cloud
Shortly after the Google App Engine appeared, Dion Hinchcliffe provided us a nice comparison of how the Google Service stack compares to Amazon Web Services.
What we can learn from Dion
First of all, I like this graphic because it shows that
- Today’s big cloud infrastructures comprise of a bunch of vendor-specific services.
- We should differentiate between the core cloud (infrastructure) and vertical or horizontal cloud services.
- There are different levels of integration.
- There is a client side, too. Tool support is crucial if you want to push a new technology. Another facet is the trend towards online/offline applications (Google Gears, Adobe AIR, etc). Users should be able to continue doing work even if the cloud goes down for a while.
Of course, everyone has his personal bias, so I see things a bit differently:
- I agree, there are obviously a lot of different services out there.
- According to the picture it seems like the core of the Amazon cloud is EC2 and the core of Google App Engine is – well – the App Engine. Why not count in storage capacity? I believe that storage as well as processing power should be seen as the core cloud services. Amazon S3 and SimpleDB and Google datastore respectively are part of the core cloud. There are horizontal cloud services as well, such as Amazon Flexible Payment Service (FPS). It does not help much if only your infrastructure scales but the rest of your business does not.
- What you cannot see from the picture is that Amazon’s Web Services are more loose coupled and Google’s services are glued together. Seems like Amazon has taken the Linux approach to Cloud computing, whereas Google follows the Microsoft business model. Where Amazon Web Services offer greater flexibility because they can be combined with third-party services, integrated into (open source or commercial) frameworks and software products, Google provides a more easy-to-use model (auto-scaling, sweet APIs) at the cost of vendor lock-in.
- I believe that it is important to have a look at the client side, too (see my blog post on OpenSocial + App Engine). How do programmers develop applications for and deploy them into the cloud? Aptana, for instance, offers tool support for developers who seek to deploy their application into the (Joyent) cloud. Obviously, Google Mashup Editor, Open Social, and others are going to integrate much better with the rest of Google’s cloud API stack. Another category of tools are monitoring and admin tools which right now only exist for Amazon (as far a I know).
One last thought. Dion mentions the following
As for enabling business models, Amazon has it’s eCommerce APIs to help its PaaS partners generate revenue while Google has its far more flexible and general purpose advertising models with its AdSense product line.
Why is it far more flexible to do advertising? Google can offer advertising services, for sure. But Amazon has an interesting market position, too: a huge retailer with millions of registered customers. If they give access to Amazon customer accounts (and they do, Amazon FPS for example), third-party developers can build innovative business models around it. They can develop marketplace applications, charge micro-payments, and so on.