[Setup] Plone on the cloud: how to keep it simple but modular ?

Giovanni Toffoli toffoli at uni.net
Tue Mar 1 15:00:18 UTC 2011


Hi all,

I don't know how common are my requirements, but I hope that somebody will 
lend an ear anyway.
Briefly: I need advice on putting together:
- multiple Plone sites per Zope instance (ZODB mount points)
- moderately complex proxy configuration (virtual sites, caching, possibly 
balancing).

PUTTING IN CONTEXT

In the past years my little company developed several sites/applications on 
Plone 2, 2.5 and 3. We spent time and effort on quite complex application 
requirements, but didn't address system/performance issues, since most 
projects were dealing with research prototypes or web sites for small 
non-critical businesses. Thus, we never used Zeo and proxies other than 
Apache. On the other hand, we always created multiple Plone sites per Zope 
instance for sake of flexibility in maintenance and in development: sharing 
skills and components among low-budget projects.

Recently we resolved to try AWS to get rid of the troubles involved in 
in-house hosting or in relying on costly and/or unflexible housing. We 
installed with success the "Plone Quick Start for EC2" provided by Jazkarta 
(many thanks!).
Thus, starting from the example provided by its "Plone Quick Start AMI", we 
came upon Nginx, Varnish, HAProxy, and so on. And read a lot; among others:
http://blog.jazkarta.com/2011/01/20/plone-quick-start-for-ec2-now-available-in-all-regions
http://www.martinaspeli.net/articles/an-uber-buildout-for-a-production-plone-server
http://plone.293351.n2.nabble.com/Nginx-or-Apache-td5826797.html
http://redomino.com/it/labs/documentazione/tutorial/nginx-come-reverse-proxy-di-plone/tutorial-all-pages
https://nathanvangheem.com/news/nginx-with-built-in-load-balancing-and-caching

It seems to me that the Plone Quick Start AMI by Jazkarta follows a trend on 
which several active members of the Plone community agree (e.g. Martin 
Aspeli, Andreas Jung). Schematically, the solution includes Nginx -> Varnish 
(caching) -> HAProxy (balancing). Probably HAProxy can be considered an 
option in sites without extreme requirements.

OUR USE CASE

In future we will avoid to keep too many Plone sites on the same instance, 
since EC2 will favour giving each customer exactly what he needs and pays 
for. However, having each Plone site configured on a ZODB mount point would 
make easier to pass from development to production and to maintain/upgrade 
separately each site.

My reference scenario:
- 1 EC2 instance with 1 ZeoServer and a few Zeo Clients
- from 1 to 3 Plone sites, each on a ZODB mount point
- medium level of traffic, without notable peaks
- most users are anonymous
- autenticated access only for admin. and content management
- optional requirement: HTTPS.

My questions:
- is Nginx + Varnish ok?
- how to allocate Zeo clients? per site, class of user, both?
- how to implement the allocation of the Zeo clients?

Thank you very much in advance, Giovanni 



More information about the Setup mailing list