[Setup] Multiple Plone sites in development and deployment

Giovanni Toffoli toffoli at uni.net
Thu Mar 3 12:25:17 UTC 2011

Hi all,

this post is linked to the thread "Plone on the cloud: how to keep it simple 
but modular". I realize that its title was a bit misleading, since in my 
intention the core question was: how to keep the advantages of modular 
development (multiple Plone sites in multiple ZODB mount-points) in 
connection with Zeo, new hosting opportunities (Plone in the cloud) and new 
storage schemes (blobstorage in Plone 4). My reference scenario has been 
outlined in the first message of said thread.


>From the replies I've got (thanks to all people) I draw that a number of 
proxying schemes are ok (for virtual hosting, balancing and caching), from 
Nginx only (or possibly Varnish only) to a complex chain of dedicated 
proxies, such as Nginx+Varnish+HAProxy.
I got separate examples of buildouts for multiple mount-points with and 
without Zeo, and for Plone 4, and and examples of configuration files for a 
few proxying combinations.
My main difficulty, whatever the proxying solution adopted, is to adapt the 
buildout to cope with all elements together, in particular with Plone 4 
(blobstorage), Zeo and multiple Plone sites on different ZODB mount-points.

I recap my development environment:
- no Zeo, no proxies but Apache
- 1 ZODB in file Data.fs
- N mount-points: sub-folders db1, db2, .. dbn (files db1.fs, db2.fs, .. 
- N Plone sites at the physical addresses /db1/site1, /db2/site2, .. 


For deployment, till now I always made the assumption of having a unique 
ZODB (with a few mount-points) and a unique ZeoServer. But possibly this 
isn't a reasonable choice.
My new questions, roused by a couple of replies, are:
1. better having a different ZODB and a different ZeoServer per Plone site ?
2. in this case, the CPU and RAM overheads are acceptable ?


If the answers to both questions above are YES, in the deployment I could 
keep the modularity of the development environment as follows:
- M sites; they could be subsets of sites coming from similar but distinct 
development environments, on both Linux and Windows
- 1 ZODB per site, say in file sitej_db.fs (to be created by the buildout)
- 1 mount point per site, in ZODB sitej_db, sub-folder dbj (file dbj.fs)
- Plone object filej, in sub-folder dbj
- 1 ZeoServer and 1 or more Zeo clients, or no Zeo at all, per site.
In this case, the buildout file would be bigger but probably I would be able 
to write it by myself. In each case, I would have a unique buildout and 
would share among the sites both Zope and Plone directories/modules.


More information about the Setup mailing list