Benoit Masson wrote:
[...]
- What about load balancing ?
When I was designing a scalable Python web app system recently, it
involved a software load balancer and CherryPy RAM sessions.
You can use Pound as software load balancer
(http://www.apsis.ch/pound/). It allows you to use session detection by
Cookie value, too, among options.
Will we be able to use cluster fot the cherrypy part ?
With Pound and CherryPy RAM sessions, it should work fine.
Separating the database is a basic move, but what about
turbogears sharing sessions between server ?
With the above approach, you explicitly don't share sessions. Sessions
are kept local to CherryPy instances, and the load balancer makes sure
that requests for the same session are always going to the same CherryPy
instance.
or should we look LVS cluster instead so the framework doesn't even
know it is on a cluster ?
I'd try the simpler approach first.
Note that you don't get session failover this way. I decided to forget
about session failover and make the rest of the system easy to implement
and robust. You *do* get normal failover this way. I. e. if one CherryPy
instance dies, Pound will notice and distribute the load on the
remaining instances.
-- Gerhard