Earlier this week, Google announced the preview release of Google App Engine, a service that lets you build and run web applictions (in Python only for now) on Google’s own server infrastructure. This latest move continues a trend away from self-managed hosting and extends it by offering a fully managed application environment.
First of all, let’s be courteous and set aside the fact that Google botched the launch of App Engine—first by tripping over its own quotas and then by succumbing to a rudimentary cross-site scripting attack. We’ll just assume the preview was rushed out the door before it was entirely ready. We’ll also overlook App Engine’s striking similarity to competitor AppJet.
Google App Engine joins the Amazon Elastic Compute Cloud (EC2) in providing instantly scalable hosting. In these uncertain times, it can be incredibly reassuring to build your site on a hosting service that will remain inexpensive if your business never takes off, but which can also keep up with a runaway hit without breaking a sweat.
Where App Engine beats EC2 is in friendiness for beginners. You can deploy a new application to App Engine with a single command. Google handles all the infrastructure details, so you don’t even have to think of things like load balancing and database backups.
App Engine’s downfall is lock-in. An application built for App Engine will only run on App Engine, while an application not built for App Engine will require major modifications to work within Google’s services.
Conversely, EC2’s strength is flexibility. EC2 lets you set up a cluster of virtual servers that behave just like dedicated, physical computers. You get to pick the operating system and software that runs on these servers, and you get to control the number of virtual servers that host your site at any given time. But all this set-up takes time, and no small amount of skill.
Clearly, the flexibility offered by EC2 that makes it perfect for hosting established applications with significant infrastructure needs also presents a barrier to entry for beginners who are just getting started. But the openness of the EC2 platform means that this barrier is simply an opportunity for people to build (and potentially sell) ladders:
Scalr is a recently-launched open source project that automates the management of EC2 clusters. While still in its early stages, it already does everything the custom-built system that we had to write for SitePoint’s EC2-hosted applications does.
Heroku is a browser-based development environment for building Ruby on Rails applications. Edit the code of your application right in your browser, then click one button to deploy the application to EC2 automatically! All the details are managed for you.
The inevitable next step is for someone to implement the services provided by Google App Engine on the Amazon EC2 platform. Bring the strengths of these two competitors together, and things will really get interesting!