In <(E-Mail Removed)>,
Ignoramus7931 <(E-Mail Removed)> mentions:
>The alternative is to get one less decent computer, and work harder on
>having both share the load -- and on being able to turn any one of
>them off.
This might actually be your best plan. It's quite difficult though,
particularly where shared sessions are used and that sort of thing.
>I will appreciate some practical experiences here.
I've done the load balancing before. It's work, but it's worth it. Basically,
you need to think of everything as a /service/ as opposed to a /server/ with
each service having multiple hosts to handle it. The other thing to do,
is place front-end apache servers that pass given URL's off to machines
that are configured for that specific task.
For example, a mod_perl or java servlet engine might be expensive in terms
of resource consumption, a waste for serving a static image. So, you'd have
apache (or other web server) configured bare minimum, forwarding the URL's
off to machines that are better able to handle the content. (probably, it'd
handle static content right away but pass the rendering tasks to machines with
rendering, others to databases, etc..)
Configuration in this situation is a /nightmare/ you want some kind of directory
some place (I used LDAP when I did it) some place where you can keep all your
configs in one place.
When I did it, we had real machines...
These days, I would seriously consider getting a moderate heavy-weight box,
partitioning it into multiple virtual machines (UML, XEN, etc..) and then
adjusting the virtual machine(s) for the task. That way, you can basically copy
the whole machine, take it offline (or diagnose it, etc..) and put it back into
service. Adding new *physical* machines as they become needed, and you can do
easier testing.
If you do this, you can have fallbacks, which is *nice* but, it's a LOT of work,
something as simple as writing to a $!@% file suddenly become a major complex
operation.
Jamie
--
http://www.geniegate.com Custom web programming
Perl * Java * UNIX User Management Solutions