Let me start saying that Google App Engine is a great Platform as a Service from Google.
That said, this post is mainly an information for those people who are considering using Google App Engine for some purpose.
In our work we came across a scenario and considered using Google App Engine (GAE) as a solution. I was assigned the task to getting started on the task. You have a beautiful getting started Guide here. We have written good amount of code, everything looked fine on the local development GAE Server. After a good amount of locall testing, deployed our code on App Engine.
Now we started realizing various issues. It was truely an awesome experience solving these problems to finally make the code work smoothly.
Lets get into the limitations:
1. URL Fetch request has a maximum deadline of 10 seconds
From GAE Docs:
You can set a deadline for a request, the most amount of time the service will wait for a response. By default, the deadline for a fetch is 5 seconds. The maximum deadline is 10 seconds. When using the URLConnection interface, the service uses the connection timeout (
setConnectTimeout()) plus the read timeout (
setReadTimeout()) as the deadline.
2. Maximum request time out of 30 seconds
A request handler has a limited amount of time to generate and return a response to a request, typically around 30 seconds. Once the deadline has been reached, the request handler is interrupted.
3. No HTTPS Support for Google Apps domains
Google Apps domains do not currently support HTTPS. HTTPS support is limited to apps accessed via
*.appspot.comdomains. Accessing an HTTPS URL on a Google Apps domain will return a “host not found” error, and accessing a URL whose handler only accepts HTTPS (see below) using HTTP will return an HTTP 403 “Forbidden” error. You can link to an HTTPS URL with the
*.appspot.comdomain for secure features, and use the Apps domain and HTTP for the rest of the site.
From the GAE Road map, it looks like this feature might be available by EOY 2010 – Refer here
These are few of the problems which we faced while working on GAE.
We made use of asynchronous fetch [Fetch Async] calls to solve the issues with timeouts. In fact the app engine logs very much in debugging the issues!
Over all it was great experience working on GAE. I am truely amazed with the kind of services provided by Google. To know more about Google App Engine visit Google App Engine documentation here