App Engine: Competition Is Good for Everyone

Brian McConnell is the founder of the Worldwide Lexicon project and Der Mundo.

The launch of Google’s Application Engine, which allows developers to build a web application and then host it on Google’s existing infrastructure, is a watershed moment in the software development industry. The days of building and hosting your own servers, except for specialized applications, are officially over.

This is good news. And App Engine will give everyone, including Amazon, a nice scare, which means that these companies will be forced to take a hard look at what they offer today, and what they need to do to improve it.

Here’s what I want on behalf of our firm, a web application company, from an elastic computing provider. (I think the majority of developers and managers will agree with most of these points.):

  • I want scalable computing and bandwidth on autopilot. I don’t want people spending their time configuring server arrays.
  • I want the service to look like a single instance of a generic Linux CPU with services pre-installed
  • I want to be able to use the scripting language of my choice (mine are PHP, Python or Ruby)
  • I want a distributed file system that looks like an ordinary file path
  • I want MySQL in the local cloud for database services
  • I want everything to be standards-based, to the fullest extent possible, so that I can spread resources across more than one vendor and if I need to change vendors, I don’t have to redesign my entire application
  • I want the option of not hosting applications with a potential competitor.

Google’s big weakness — which Amazon, Rackspace and others will soon exploit — is that it’s not a neutral player in this market. So for companies that are building highly automated services and web apps, Google’s inherent conflict of interest is an issue. I think App Engine will be a great deal for independent developers who want to build and host their apps somewhere but don’t care so much about building a business, much the way Geocities and other services were great for people who wanted a home for their web pages.

I don’t think it’s such a good fit for companies with legitimate concerns about vendor neutrality, access to sensitive data, etc. I know my board would be squeamish about hosting everything at Google. The search giant’s motto may be “Don’t Be Evil,” but given the choice between hosting at a company that also offers its own web services and a neutral vendor, I’d go with the neutral vendor.

In terms of vendors, Amazon seems most likely to benefit, as App Engine has further legitimized the concept of cloud computing. And in terms of needed improvements, AWS has the fewest. S3, last time I checked, required a lot of work to implement. It should have looked like a local file path, with caching and whatnot being handled transparently so apps don’t need to know about S3. Same thing with database services. I’d just like to be able to talk to a MySQL or Postgres server in the cloud, way easier than building something around a new system.

Amazon’s simple database server may be better, but it doesn’t matter. SQL is like ASCII. That’s what people are accustomed to using, and that’s what all the tools are built around. All Amazon really needs to do is make their elastic computing service look like a Linux CPU with a giant local file system, and a pre-provisioned SQL database server ready to talk to. Add some basic tools for launching and killing new systems in response to CPU or network load, and this sounds like it’d be pretty useful. (We’ve been looking at AWS pretty closely for a while now).

As with hosting and colocation, I don’t see this being a winner-takes-all market. There have always been a variety of vendors catering to different markets. Sometimes you need a cage where you can install specialty appliances (spam filters or VoIP servers, for example). So it seems to me that the winners in this category will be the same companies that have done well renting remote servers. They can offer users a range of services, from elastic computing to remote servers to rackspace and connectivity. That’s a complete solution, which if you’re building a company around your services, is often what you need.

I’ve been looking at several elastic computing services. Every one I’ve looked at so far was close to what we needed, but not quite there. Hopefully App Engine will scare the bejesus out of other companies to the point that they’ll work out the few remaining issues with these products, allowing us throw out our dedicated servers and smoothly switch over to an elastic computing platform.