Plone on Google App Engine, Anyone?

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?

  1. ZODB is one of the central parts of Zope and Plone. But idea is very interesting.

    As I can remember C-writen parts are:
    – ZODB
    – Templates Parsing
    – BTree
    and MM and images processing. Something else?

  2. 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.

  3. 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.

  4. 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?

  5. Well,
    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.

  6. 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.

  7. IMHO it would be good idea to write an entransit front-end (part serving exported metadata) using Google Web App Engine.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.