Google just announced the Google App Engine, and reading through the documentation and all I came up with this idea: it should be possible to get Plone running on the Google App Engine!
How would that be possible you ask? Well, a couple things are required.
The Repoze guys have Plone running as a WSGI app, AFAICT. So the hosting part is pretty much settled. You just deploy an app that sets up a Repoze WSGI App.
Then comes the storage. Plone, being based on Zope, uses the ZODB. But the Google App Engine doesn’t allow writing to the filesystem. The solution? Having a RelStorage backend that uses the DataStore API.
The final step would be getting rid of the C extensions in Zope, and having Zope run in Pure Python. Fortunately, there’s a student application for this year’s Google Summer of Code project that intends to port Zope to Jython! That should help with this last step by providing Pure Python implementations of the C extensions, if it gets approved.
I am really excited by the possibilities that this opens up. And would love to see someone pick up this project and turn it into reality.
12 thoughts on “Plone on Google App Engine, Anyone?”
ZODB is one of the central parts of Zope and Plone. But idea is very interesting.
As I can remember C-writen parts are:
– Templates Parsing
and MM and images processing. Something else?
DTML support is written in C, but Zope Page Templates (ZPT) is pure Python.
Acquisition/ExtensionClass and cPersistence are the biggest modules that would need porting.
Meh, to be honest I think it’d be more trouble than it’s worth. The advantage of google app engine is that it’s been highly tuned, we’d be abusing the system to get Plone running in that environment.
S3 is a more interesting target, imho.
I would love to see it too. Starting to sound less feasible though. I think they’d have to be more inclusive.
Does anyone know if Zope3 has as many C extensions?
Zope 3 is closer to run in pure python. zope.interface has a pure python implementation for example.
from what I’ve seen in the code of the actual SDK:
– it’s Python 2.5 only
– it’s WSGI through the CGI adaptor only
IMHO Zope and 2.5 do not mix, do they? At least not Zope 2 IIRC.
If you serialize to json or xml instead of pickles, you could even integrate with other platforms. Java or C# could read/write the database.
@seletz: There’s a proposal for GSoC’08 on the Zope Foundation from a student that wants to finish porting Zope 2 to Python 2.5.
@MaxM: Yes, that sounds a lot like Enfold’s Entransit goal. :)
IMHO it would be good idea to write an entransit front-end (part serving exported metadata) using Google Web App Engine.
Hm, I thought AppEngine would not allow for long-running processes and as I understand it you still have this with repoze or am I mistaken?