App Engine Development on a Budget (With a $35 Raspberry Pi computer)

705 views
Skip to first unread message

Bryce Cutt

unread,
Aug 26, 2012, 1:05:25 AM8/26/12
to google-a...@googlegroups.com
Some of you are probably aware of the Raspberry Pi single board computer that runs Linux and Python quite well. When I first heard of it I had lots of ideas of what to use it for and one of those was to run App Engine on it. Why? Because I can. :)

My Raspberry Pi arrived in the mail yesterday and today I got the Python App Engine SDK running on it. The Pi has a 700Mhz ARM processor and 256MB of RAM and my small Debian (Raspbian) install has about 190MBs of RAM free once it is up and running. I am not running a desktop environment, just bash.

My initial tests have worked out pretty well with simple apps and as time allows I am going to try building a larger app and deploying to the production servers directly from the Pi. I am curious how the performance compares to a standard F1 App Engine production instance. I may run some tests to see.

The Raspberry Pi was developed as an inexpensive device to help teach kids how to program. App Engine is a great platform for developing web applications. I think it is a good match at an incredibly low price.

Robert Fischer

unread,
Aug 26, 2012, 1:41:04 AM8/26/12
to google-a...@googlegroups.com
I love my Raspberry Pi and think this is a neat idea!

While an interesting project to benchmark the dev_appserver vs an F1 instance I'm not sure how to accurately measure performance. What tests do you have in mind?

The reason I ask is that I have a *very* index happy application and running request on my dev_appserver server (to save hundreds of entities each creating 20+ indexes) it basically locks up the dev_appserver on my quad core desktop and takes over 100 times longer to finish the DB operations than an F1 instance takes.

Similarly, another intense thing I do to my app is to spawn a LOT of tasks at my backend which spend most of their time waiting on urlfetch responses before doing something trivial. On the dev_appserver these requests seem to be blocking and processed serially but in production they are processed simultaneously.

I'm curious how you plan to benchmark the raspberry pi dev_appserver vs the production stack.

-Robert Fischer


--
You received this message because you are subscribed to the Google Groups "Google App Engine" group.
To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/14lnjwk1RQEJ.
To post to this group, send email to google-a...@googlegroups.com.
To unsubscribe from this group, send email to google-appengi...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.

Bryce Cutt

unread,
Aug 26, 2012, 2:17:23 AM8/26/12
to google-a...@googlegroups.com
To be honest I had not yet thought about it much beyond having the initial idea.

Due to the fact that the dev server is simulating all the GAE services (datastore, urlfetch, memcache, images, etc.) I doubt there is anything useful to learn from how they perform on the dev server that can be applied to the production server. Anything that requires an RPC is going to run far too differently on the dev server. I think all we could really compare is how pure Python code runs.

Your index example is very likely due to the fact that the simulated datastore does not have the same performance characteristics as the production datastore. The underlying storage system is completely different. If you are not currently using the SQLite backend on the dev server give that a try. In my experience it performs much better than the default one.

For my tests I was just going to run some processing and memory IO intensive operations and see how they compare. Will this give me any insight into how to better optimize for the production server? Probably not. But, as with getting GAE running on the Pi in the first place, I don't really have any lofty goals with this and I am just curious.

- Bryce

Anand Mistry

unread,
Aug 26, 2012, 7:50:52 PM8/26/12
to google-a...@googlegroups.com
Running the dev_appserver on a Raspberry Pi is an interesting idea. However, I think the performance is going to be lacking. Yes, it's 700MHz, but you're dealing with an ARM11 as opposed to a a modern x86 chip. Also, I suspect the "disk" IO performance to be pretty bad. I don't have a Pi, but I do have a Pandaboard and the SD card performance leaves a lot to be desired. Here's a short note from Google's SVP of infrastructure with his opinion on processor cores (http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/fr//pubs/archive/36448.pdf).

Bryce Cutt

unread,
Aug 26, 2012, 10:21:14 PM8/26/12
to google-a...@googlegroups.com
I suspect you are very right Anand. It seems likely that the speed of the RAM is going to play a huge part as well. I didn't mean to suggest it was an apples to apples comparison, just proposed it as a curiosity.

If I was going to use the Pi as a web server so that it could perform a task in and of itself I would likely choose something like Tornado paired with webapp2 instead of dev_appserver. But the fact that you can develop huge scale web applications on such an inexpensive device is kind of cool. It's kind of like running a web server on an iPhone: it is not very practical, but it is cool. Actually, now I want to run dev_appserver on my iPhone....

- Bryce

james jones

unread,
Aug 26, 2012, 10:31:21 PM8/26/12
to google-a...@googlegroups.com

--
You received this message because you are subscribed to the Google Groups "Google App Engine" group.
To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/2p4FJF4xnXgJ.

To post to this group, send email to google-a...@googlegroups.com.
To unsubscribe from this group, send email to google-appengi...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.

Have you guys looked at AppScale and TyphoonAE?
 

Reply all
Reply to author
Forward
0 new messages