Why Microsoft

A blog about Microsoft's strategic and technical differentiation.

Is Google App Engine Enterprise-Ready?

Is Google App Engine Enterprise-Ready?

  • Comments 3
  • Likes

Hi folks, my name is Johanna White, and I’m a senior product manager in Microsoft’s Online Services group. I’ve been at Microsoft for three years, first running the Ramp Up program (a free online learning program for developers), and then working on the SharePoint team before I moved to Online Services to focus on developers. I’ll always have a special place in my heart for developers – I was a Java/VB developer in my previous life : )


I recently attended a Seattle GTUG (Google Technology User Group) meeting, and it got me thinking about how much more Windows Azure has to offer, compared with Google App Engine. I have a great deal to say on that topic (and not just in this post). But before we talk more about that, let’s establish a few cloud computing definitions first.

 

As you can see in Figure 1 below, we can look at cloud computing as a stack of 7 components. The bottom two levels, Hardware and the Virtualized Instance, are typically provided by Infrastructure as a Service (IaaS) vendors, such as Amazon’s Elastic Compute Cloud (EC2) or in the future, Windows Azure as announced at the 2009 Professional Developer’s Conference. This allows developers the freedom to customize their own operating system, services, web server and framework for running their application.

Figure 1: Seven layers of a cloud computing application

 

Platform as a Service (PaaS) vendors such as Microsoft’s Windows Azure provide all the components necessary for developers to deploy applications, up through and including a set of frameworks. The option of using alternative frameworks and web servers is an important one as it enables a hybrid of Microsoft and non-Microsoft software to run on the same platform. Now that we have a working definition of PaaS, let’s compare Microsoft’s Windows Azure to Google’s App Engine. Today, since storage is critical to every application, we’ll restrict the discussion to the topic of storage.  Coming soon, we’ll look at the other pieces of the stack between the two systems.

 

If we don’t dwell on Google’s inflated brand, there are a few features that we can use to compare the two offerings, summarized in Figure 2. The thing you will find is Google at the surface, Google’s solution sounds good but in the end, it’s something you may want to use for prototyping but not deploy your production system on.  With Azure, you can build on it from prototype through deployment since it will scale based on your needs.

 

 

Figure 2: feature-level comparison between GAE and Windows Azure

 

GAE only provides two methods of storage for developers looking to write applications on their platform: the Blobstore and the Datastore. The Blobstore is optimized for binary objects (the space used contributes to the Stored Data (billable) quota).  The Datastore is optimized for non-relational entities. So, while the storage options for GAE are usable, they are very basic. With no option for volume or relational storage, GAE is simply unable to handle larger, transactional requirements. (Read: Google App Engine is not enterprise-ready.) Contrast this with Microsoft’s track record in enterprise-readiness and Azure’s diverse customer base, which includes several names from the Fortune 500. (See here for published Azure case studies.)

 

What about JDBC calls? Oh, you can make them – they’ll just throw an exception since GAE only supports a subset of the Java Library known as the JRE Class White List. (Read: Google App Engine is not developer-friendly or enterprise-ready.)

 

In terms of SLAs, Azure has one, Google does not.  Google has announced intentions to introduce an SLA for GAE which we will look at when it becomes available. However, as of right now, if GAE goes down, you have no recourse for your lost time and money.

 

Compare what you get in GAE vs Azure and you see a very different story.  With Azure, you get an SLA, multiple API and runtime environment support and in the area of storage, the ability to select the type of storage you want from semi-structured through relational storage with SQL Azure.  While Google announced intentions to support hosted SQL at some point, we have yet to see whether this addition will truly satisfy business customers. Oh, and this functionality , along with other services considered “advanced” will cost customers extra, too. On the flip side, since SQL Server is one of the most popular databases in the world, having a compatible cloud version of SQL Server allows developers to move their existing applications to SQL Azure very easily.  Heck, you can even use Microsoft Access against SQL Azure.  Plus, you have tools like the SQL Azure data sync tool which synchronizes your local SQL Server data to your SQL Azure deployment.  If you want to migrate, check out the SQL Azure Migration Wizard.

 

So, let’s summarize:

  1. GAE lacks a true RDBMS.  Azure has SQL Azure.
  2. GAE has limited support for database APIs.  Azure supports ADO.NET.
  3. GAE has no SLA.
  4. Given the above constraints, GAE is good for prototyping but not for production deployments.  Azure can scale from prototype to staging to production.

 

I have to conclude: Google App Engine is most definitely not enterprise-ready.

 

Comments
  • code.google.com/.../sla.html

  • Limited support for database api's?

    code.google.com/.../queries.html

  • I wonder if Google even cares if appengine is the best.  As long as people are building web apps, I think they'll be happy.

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment