Just hosted a experiment on Google App Engine, and it is so cool! = D
It is only a shame they only support Python and Java and there is no native support for Ruby.
As there are these programmers that just can’t take NO for an answer, luckily, there is this post from Woodie, he uses JRuby for getting the job done, along with a gem called rails_appengine.
Just be sure to read some of my comments by the bottom about some patches if things go wrong with you (I’m using Ubuntu 10).
The first surprise you get as you start your app, and start playing with this framework mod, is that is a MVC for sure, but there is no ActiveRecord (or migrations).. how come?!
It happens to be that AppEngine does not support MySQL or any of the regular DBs, instead it uses its own proprietary solution, DataStore. In order to access it, the solution provided is TinyDS, that you can learn a lot more on this github file by Takeru; although it is a Sinatra app, the code to query is the exact same.
After understanding some of that I got surprised by the declaration of a type called :list, that looks very much like an Array, I wonder if there are different methods to update and query it..
App Engine also has services for storing large files, images, caching, tasks, e-mail, among other handy services! Besides, the free-quotas are large.
Unfortunately, as this version is, there is no directly bind (or if so, there is no documentation about) for all those services provided.
On that same example from Takeru however, one can observe it requires ‘appengine-apis/memcache’, and uses it on the app. I tried myself and found success using it, what leads me to believe that the services may be accessed likewise.
For the moment I’m pretty happy with today’s progress, it was extremely easy to deploy, my app. Just be sure to setup the WEB-INF/app.yaml with the proper app-id.
For those who have interest the account is free and enabled for any Google Account, make your here. I will just leave the warning, for the time being that this thing seems pretty ‘green’, I just would be very careful planing to develop any complex App to host over this Ruby implementation because it looks like I could hit a dev wall at anytime.