Last week, Google announced a preview release of their new Google App Engine service. App Engine is a hosting platform offered by Google that provides developers with APIs to the same tools they use to power their own applications. With it, developers can theoretically scale their applications indefinitely on the cheap — the base service claims to provide enough resources for an application to serve 5 million pages per month for free with an undisclosed price plan for further resource usage.
Typical web hosting services today provide developers with either a shared account on a server or a dedicated server in a data-center. In both scenarios, the developer is left to administer the system and deploy their application manually. As the usage of the application increases, the developer has to also plan to purchase further resources and manage that infrastructure manually as well. The benefit to this scenario is of course customization: the developer is free to choose which operating system, libraries, and software to use.
More modern web hosts will offer virtual machines or containers that share resources on a continually expanding grid of servers. This approach takes some of the load off the developer in managing the procurement of resources as the usage of their application increases. However, they still require all the customization of the typical web-host.
Google App Engine takes it one step further. The APIs they provide remove the necessity of customizing the server operating system, libraries, and so forth. As well, the developer no longer has to manage the procurement of resources beyond checking their service usage. Deploying their application is also automated through the SDKs provided by Google for use with the service. Google App Engine essentially makes web hosting a full on commodity resource like paying the electrical bill; leaving developers free to spend more time developing great applications.
There are some who would say that this approach locks developers into a platform and leaves them and their data at the mercy of a corporation. One that has a recent history of alleged dubious privacy practices. Technologically speaking, there is no lock in as far as I can tell: the only requirement that the Google App Engine requires from an application is that it speak CGI. The persistence layer can be any one of the developer’s choosing including ones provided by Google through the service which means there is no lock in. As long as the developer abstracts out the dependence on any Google APIs they use, their application should remain sufficiently portable enough to move to another service if the need arises.
Of course, the drawback to this form of hosting is the reliance on APIs. As any developer worth their salt knows, these things change over time. The terms of the service state that Google isn’t required to warn its users when it decides to make changes to the interface; leaving developers to scramble together patches to fix their applications when those changes break things. It’s generally never a good idea to ever rely on an API to remain the same.
So the final question remains: will this be a new sustainable model for hosting?
My initial reaction says that it’ll only be sustainable for companies like Google who have access to vast pools of assets. They are able to offer so much in the way of resource usage for free to developers because they have so much of it that it’s nearly free to them. For smaller companies, this likely won’t be possible and so what they can offer for free will be much lower. As long as Google watches usage closely and charge ahead of the curve, Google App Engine could be a profitable venture for them.
For the developers, it means being careful. Don’t write your application and depend on Google App Engine to always be there. It may change the interfaces or it may go out of business. Make sure you applications are portable however, and you should be fine.
For the smaller companies considering this business model: it may not work for you unless you have a vast supply of commodity hardware. The exception of course will be if you can provide an incentive for developers to offset the lower amount of resources you can offer for free. This could be the new face of hosting in the future.