“Clustering allows an application server to support multiple nodes with failover, session data sharing, and load balancing across many network nodes. This article provides details, direct from Apache Geronimo clustering effort team leader, Jeff Genender. Find out who is working on the details, how they work together to get the code written, and the ramifications these efforts are having on the open source community.”
this doesn’t seem to be something the perl framework community wants to take seriously. I’d like to keep using perl when we start our rewrite (maybe catalyst) but I can’t ignore these kind of features. Any real enterprise environment is going to have multiple application servers and need this kind of setup.
You might try looking into this:
http://www.ultramonkey.org/
Which gets you about 80% of the way . . .
…use JBoss!
Don’t you mean WebLogic
perl/mason with a document root on nfs and mysql-based sessions, all under lvs will do you pretty well.
What’s puzzled me is that clustering (either with load balancing or failover capabilities) is actually quite important for any medium/large projects, particularly ones that have strict Service Level Agreements and harsh penalties for downtimes and yet no Linux distro seems to come with clustering support as standard.
You need bonded network interfaces (optional but nice to have), distributed filing system (no, we’re NOT talking NFS here – that has a single point of failure), clustered database (e.g. why doesn’t MySQL 5 cluster as standard now?), balanced/failover Web serving and, in fact, generally balanced TCP services wherever possible.
Very little of this is even in the “Enterprise” Linux distros – I think it’s one of the biggest gaps in the Linux arsenal for small and medium businesses. You should really be able to set up two machines to act like one out-of-the-box, but you can’t without an awful lot of manual hacking around (yes, I tried various free distributed filing systems for example, but they were horrendous to set up or simply abandoned for expensive commercial versions).
The most interesting thing here is seamless failover with session data intact. This is what makes a stunning cluster setup. I would love to have that in PHP
An example is OpenBSD with PFsync and CARP, we had one of our firewalls throw a disk the other week, we knew because our systems informed us, not because the phone started ringing or because users noticed. Translation : We have two firewalls and one of them went splat and no one apart from us admins knew this included the people who were connected through the machine at the time, totally seamless and yes it is very cool
This is not always something that can be sorted on the software side, sometimes this requires hardware ie shared storage arrays. Just because it is possible and free does not make it the best solution. You need to tailor your systems to the required application. No distro will give you your dream setup out of the box.
On a related note, I would highly recommend http://www.loadbalancer.org who build preconfigured linux loadbalancers which are rock solid and are ace to use. No affiliation, just a satisfied customer