A bit pompous title about Typical Cluster Technical Architecture. But so true.
How many times I have confidently started from this simple, effective and resilient TA for a cluster (aka farm) of servers. Most often acting as a server side to some Web Application.
Two (load balanced) web servers in the front, two application servers in the middle and simple database mirroring in the back (active or passive). Clustering is too complicated in this case. It requires more involved installation and monitoring and thus it is more expensive as a solution. What can be better than this? Simple to explain, simple to install and monitor. And very hard to break. Machines with 128 GB RAM, RAID10 multi disk arrays and some cool Xeon quartet are definitely not more than 10K a pop. Six of them in this configuration can server amazing number of simultaneous calls. All the way form the Load Balancer to the DB and back.
But. It is very easy to get carried away looking into this beautiful symmetry. Because symmetrical it is not.
And this is because only one data base machine is in use at any one time. The “P” or Primary on this diagram. “M” or Mirror simply receives the copy of everything that is happening on the Primary side. It is not bothered at all by any of the Application servers.
So the typical load is 80% on the Primary and 50% on the Mirror database server.
Do not forget that. This is not bad as long as you use it to your advantage :) Here is one implementation of this architecture, I delivered this year: