These days, web developers are faced with a lot of difficult choices. One of them is which technology to pick for the next app, another is which hosting to use. It takes time and experience to make winning choices, especially when dealing with time sensitive deliverables. Back in the days developers had to do it all: configure a server, set up database access, get a static ip, etc... Configuring and supporting such a system could probably be a full time job in itself. Hence another (more attractive) alternative was to have a 'hosting' company do it for you. The question was, which hosting do you pick? Which one provides more configuration options? Which supports the right set of technologies? Which is more stable? Which one is more robust/responsive? Does it provide easy deployment? Monitoring? Logging? Versioning? Collaboration? Since web applications are evolving, so do hosting companies. Using a local hosting company usually provides higher accessibility to your app, which is important for a number of reasons, even if it supports a lesser variety of features than a more global one. Recently big players started entering hosting arena with their all-in-one solutions. One of these players is
Google App Engine (GAE)
, which I'd like to talk about in this post. If you are in tune with other Google technologies, Google App Engine is a great edition to the Google web app family. Currently it supports two languages,
. At this moment, Python support is probably a bit more mature, especially when it comes to managing data. Java is a recent addition, but does support enough features to kick-start your next app, and is evolving quickly.
It is possible to mix both technologies together using different app versions, which comes in handy when trying to accomplish different aspects of functionality. Python is great for getting a site up and running quickly, streamlined by support for
framework. One can have a basic content management site up in no time with minimal configuration. Uploading your app is a breeze, as well as setting up local development environment. With a
, Gae comes with enough goodies to get one started. It supports sending email, lots of bandwidth and CPU time, over 1 million request per day and up to 1GB of stored data. It also comes with certain limitations, not necessarily being a bad thing, since most of them shield one's web-app from improper usage. (see
On the Java side, Gae supports a number of commonly used features. It tightly integrates with
to create, compile and deploy projects quickly. Gae Java comes with native support for
, which gives ability to build robust and highly interactive RIA AJAX web applications. Data aware objects are decorated with either JDO or JPA annotations. It supports JSP pages and Servlets, with standard war directory structure, web.xml configurations, logging, etc.. (One can even write in Groovy, here is an article that explains
) Out of the box you get Caching API, URL Fetch services, email support, server-side image manipulation, and integration with Google Accounts. Time wise, an experienced developer could probably have a simple GWT app (from scratch) with an RPC call and DB access deployed to Gae within 1-2 hours. Eclipse plugin project creator tool handles all necessary dependencies. Deployment is as easy as pressing 'Deploy' button. A word about Gae datastore.
Gae uses a schemaless object datastore, with a query engine and atomic transactions. It is designed with web applications in mind, having an emphasis on read and query performance. All queries are pre-indexed, capable of handling results over very large data sets. Datastore supports transactional updates, using entity groupings defined by the application as the unit of transactionality in the distributed data network
) On the admin side, developers have access to a feature-rich dashboard (see bellow). Here one can monitor app's health/performance using various views. GAE Admin supports usage charts, detailed breakdown of quota details, log viewer, data viewer, app version manager, billing, etc.. Like most Google apps, admin site is simple and responsive, packed with enough functionality to get a good handle on what your app is doing on daily basis. You can get started with your very own GAE account
. (It gives ability to have up to 10 apps and share your apps with other developers)
Thank you for reading and good luck on choosing the right hosting for your web application needs!
- Design • Build • Localize | Web • Desktop • Mobile