Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Zope 3 at Google App Engine


Published on

Introduction to Google App Engine Features and Limitations. Zope 3 Limitations and refactored packages, disabled packages, datastorestorage for ZODB. Grok at GAE.

Published in: Technology

Zope 3 at Google App Engine

  1. 1. Zope 3 at Google App Engine Mykola Kharechko © Quintagroup, 2009
  2. 2. Overview <ul><li>Google App Engine Features </li></ul><ul><li>Google App Engine Limitations </li></ul><ul><li>Zope 3 Limitations </li></ul><ul><li>Zope 3 refactored packages </li></ul><ul><li>Zope 3 disabled packages </li></ul><ul><li>datastorestorage for ZODB </li></ul><ul><li>Grok at GAE </li></ul><ul><li>Demo </li></ul><ul><li>Summary </li></ul>
  3. 3. Google App Engine Features <ul><li>Python Runtime Environment </li></ul><ul><li>WSGI Support </li></ul><ul><li>Datastore storage </li></ul>
  4. 4. Google App Engine Limitations <ul><li>Read only file system </li></ul><ul><li>Reduced Standard Library </li></ul><ul><li>No C extensions </li></ul><ul><li>No zipimport (py_zipimport instead) </li></ul><ul><li>Quotas </li></ul><ul><ul><li>Timeout (30 sec) </li></ul></ul>
  5. 5. Zope 3 Limitations <ul><li>Long startup (CPU, timeout, disk-io, ZCML, ZODB connection) </li></ul><ul><li>Some packages are written in C </li></ul><ul><li>No ZODB storage for Datastore </li></ul><ul><li>zope.configuration don't support zipped eggs </li></ul>
  6. 6. Zope 3 Refactored packages <ul><li>RestrictedPython (remove “from compiler import *” ) </li></ul><ul><li>persistent (rewrote to python) </li></ul><ul><li>BTrees (rewrote only thus classes with is used by zope.catalog, ZODB) </li></ul>
  7. 7. Zope 3 Refactored packages <ul><li> (rewrote ContainedProxyBase from С) </li></ul><ul><li> (os.path.exists/isfile corrected) </li></ul><ul><li> (os.path.exists/isfile corrected) </li></ul><ul><li> (rcompile replaced to compile) </li></ul>
  8. 8. Zope 3 Refactored packages <ul><li> (@@SelectedManagementView GAE supports redirects only to absolute URLS ) </li></ul><ul><li>zope.component (optimization refactoring) </li></ul><ul><li>zope.configuration (“open” replaced to “zi_open” – now eggs can be zipped) </li></ul><ul><li>zope.documenttemplate (rcompile to compile) </li></ul><ul><li>zope.i18n (os.path corrected) </li></ul>
  9. 9. Zope 3 Refactored packages <ul><li>zope.interface (optimization changes) </li></ul><ul><li>zope.session (now sessions is storing in RAM ) </li></ul><ul><li>zope.pagetemplate (open to zi_open) </li></ul><ul><li>zope.proxy (from C to python) </li></ul><ul><li> (rcompile to compile, from c to python) </li></ul><ul><li>zope.hookable (from C to python) </li></ul>
  10. 10. Zope 3 disabled packages <ul><li> </li></ul><ul><li>zope.sendmail </li></ul><ul><li>zope.rdb </li></ul>
  11. 11. datastorestorage for ZODB <ul><li>No versions </li></ul><ul><li>No UNDO </li></ul><ul><li>Datastore transactions synchronized with ZODB tranasactions </li></ul>
  12. 12. Grok at GAE <ul><li>setuptools dependency (slower then one zip) </li></ul><ul><li>Eat more memory then zope 3 </li></ul><ul><li>slow “martian” package </li></ul>
  13. 13. Demo <ul><li> </li></ul><ul><li> </li></ul><ul><li> </li></ul>
  14. 14. Summary <ul><li>Workable zope 3 at GAE </li></ul><ul><li>Opportunity to run any zope3-based application at GAE </li></ul>
  15. 15. Links <ul><li> </li></ul><ul><li> </li></ul>