[Zope] Zope's scalability across multiple web servers

Sam Gendler sgendler@silcom.com
Wed, 26 Apr 2000 20:55:12 -0700


Depending upon whether you are creating Products in python, replication
can be as simple as copying a single file from one installation to the
others, since the entire zope object store exists in a single file.  If
you create objects as zClasses, these migrate in the same process.  If
you have python Products, you have to make sure that the product source
code gets moved over as well.

However, if you are dynamically creating objects in the ZODB (something
that is strobly discouraged in a high volume write situation) through
interaction with web browsers, obviously, the replication needs to be
real time.  IN that case ZEO is your best bet, which shares a single
object store amongst multiple web servers/interpreters.

Alternatively, before the announcement of the imminent arrival of open
source ZEO, many of us built highly scalable sites where dynamically
created objects are stored in an RDBMS (take your pick, the more
scalable the better!), and only content generation objects are stored in
the ZODB.  This means that the ZODB only changes whenever site content
changes.

All of the above solutions work very well, depending upon your
environment.

Enjoy.

--sam

> "Bostick, Aaron" wrote:
> 
> I am in the process of designing a web site that will handle the load
> of a nationally advertised web site.  I am considering using Zope over
> Pervavsive's Tango2000 or Vignette's StoryServer as an application
> server.
> 
> What I would like to know is if there are any easy ways to replicate
> the ZODB information across web servers if I am running a web farm?
> In other words,  I plan to have multiple identical web servers sitting
> behind a load balancing appliance so that incoming requests can be
> sent to any of the web servers.  Obviously, the web servers must
> contain the same data for this to be of any use.  If I plan to run a
> web server and the zope engine on each "web server", how can i
> replicate changes to all my servers to keep them synced.
> 
> Would something as simple as a recursive copy work for this?
> 
> This is not something that will have to be done in real time.
> Something simple like a batch job would suffice.  Other than the
> database content, the HTML stuff will remain relatively static.
> 
> Please excuse my ignorance on Zope.  I haven't had the chance to set
> it up yet and am still in a preliminary design phase.
> 
> Thanks for any helpful hints regarding this matter!
> 
> Aaron Bostick
> Exodus Communications