From: Lukas Beeler
Clustering is something that's already on the i and can
help you getting more from your i infrastructure.
It sounds like you're referring to having a mirrored backup server for high availability; in the event that your primary server goes down. And that's fine. But I think Mike was referring to the practice of distributing workloads across multiple application servers (a server farm), so that when one member goes down, the dispatcher stops forwarding requests to it, until the operators get it working again.
There may be many motivations for using server farms. Complex workloads tend to destabilize Windows over time, so farms become a means of managing that problem. Maybe you reroute requests away from a Windows server when it's virus scanner is running, and using 50-90% of the CPU. My last full scan took about 9 hours.
Microsoft carries distributed architecture to an extreme. I recall reading an article titled something like "Eight ways to manage state in a .Net application", which included a method for offloading "state management" to a separate "state" server.
In the case of multi-cpu servers, sometimes an application server container like Websphere Application Server is actually a bottleneck, preventing the CPUs from being fully utilized. So the answer is to start multiple app server instances, deploy your applications under each, and use an external dispatcher to route request to each.
You don't generally run into that kind of bottleneck when applications are running under the native virtual machine, using native task dispatching, and workload management. But we tend to be an industry geared toward distributed architecture anyway. Added complexity. Increased TCO.
I'd rather deploy applications to IBM i libraries, and maybe to an additional mirrored server, and be done with it.
Nathan.
As an Amazon Associate we earn from qualifying purchases.