Gebruikersdag in Amsterdam

Zope Schaalbaarheid

19 september 2007, Amsterdam

Kit Blake


Basic principles of (Zope) hosting and clusters

University of Bedfordshire example

Case: Zope/Plone at the Ministry of Flanders in Brussels

MMIS Plone infrastructure


ETH Zürich example


Zope is one of the most scalable web application servers on the market

Augmented Zope-based systems can do thousands of requests per second

Scalability: first step is caching of data

Zope should be concentrating on logic, not pumping data

Let other applications do the work

Product Names (open source)

  • Zope: application server software
  • Plone: a Zope-based application (many others)
  • Apache: web server software
  • Squid: caching server software (or Varnish, or Apache module, or black box)
  • Pound: load balancer software (or PLB, or Apache Backhand module, or black box)

Zope alone

This laptop is running Zope

Most development is done ‘locally’, as in localhost

Zope alone is perfectly fine for small sites

Peak access times determine when to scale up

Zope and Apache

In most setups Apache is used for the webserver

Apache is robust and proven software

Apache serves more than half of the world’s websites

‘Name-based virtual hosting’ allows Apache to serve many sites

Apache enables secure setups using encryption (using SSL, Secure Sockets Layer)

The Zope Application Server

Zope Architecture

Credit: Zope Corporation

Zope, Apache, and Squid

Zope Apache

Credit: The Fnord Portal

ZEO (Zope Enterprise Objects)


Credit: The Fnord Portal

ZEO cluster with Load Balancer

Load Balancer

Credit: The Fnord Portal

Plone Infrastructure for Mass Hosting

The Ministry of Flanders – Department of Environment, Nature, and Energy (LNE)

Legacy at MMIS (Milieu Management Informatiesysteem): an old CMS that doesn’t scale

Plone matched the requirements almost completely

Plone has local and international support and a vibrant community

50+ websites using various technologies

Plone setup

One Plone root contains all sites and central resources

Sites container: a container for all the sites

Site folder: the root of the site, with configuration

Virtual hosts are mapped in Apache rewrite rules

Central resources

LDAP for authentication


Functional products (e.g. PloneformGen, etc).

Some sites are multilingual, using the LinguaPlone product


Plone runs in a ZEO cluster with 4 nodes

Apache as webserver

Squid for caching

Pound for load balancing

Infrastructure diagram

MMIS infra

Site customization

Some sites have custom skins, using a base skin product

Sites can have a colors css in Zope, editable by a manager

Certain sites have an integration with an Informix database

Search is configurable for only local or local/global search

The migration brings various small web applications into Plone

Content type handling

Using default content types as much as possible

Sites can have restricted content types via a CT folder

Only specific content types are available

Setup by the administrator in portal tools

Products in use



A few modules contain custom Products

Later the generic custom products will be released as open source


All code is stored in a source code repository (svn: Subversion)

ZEO nodes are installed using a ‘buildout’ script

Installs (almost) everything: Zope, Plone, products, etc.

Some dependencies must be setup manually: LDAP, db adapter, etc.

Developers use the same buildout to install on a local machine

Large cluster

At ETH Zürich (Swiss Federal Institute of Technology)


Thank you

And thanks to the Zope/Plone communities