[Setup] Multiple Plone sites in development and deployment
toffoli at uni.net
Thu Mar 3 12:25:17 UTC 2011
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 PREVIOUS 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, ..
THE NEW QUESTIONS
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 ?
MY PROVISIONAL CONCLUSIONS
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