One of my little projects that I’ve been working on is an example where I wanted to build a system that would scale to be able selling 100k tickets in 5 minutes. I’m happy to say I’ve succeeded, but I am not able to prove it. It turns out that SOMEONE put a quota on how many EC2 instances I could spin up at a given point in time. So, I had to opt for a cluster of 1 admin node and 19 worker nodes. It wasn’t able to scale to the 100k tickets in 5 minutes, but with a few more instances I could have done it.
I intend to milk this one for content for a while, but at the same time I wanted to get a video up and running showing some of the things that I did to get it running.
I had originally decided to try and run it with simple Zend Server instances (without Cluster Manager) but after getting a cluster of 20 servers up and running I went through a test run and there was an error… and I didn’t know where. So I relented and installed Cluster Manager. Holy crap, you might say. While I knew the selling points for Cluster Manager, and stood behind each one, this was the first time I had personally experienced how great it is to have your cluster managed by it. This application depends very much on throwing data somewhere and expecting it to get processed. But I had a front end load balancer to handle browser requests and then two other load balancers to handle logic execution and, quite honestly, there was no easy way for me to track the problem from end to end. I installed Cluster Manager and had the issue identified in 5 minutes. Stupid config. Fixed it and was on my way. My conclusion is that if you do anything with a load balancer in PHP and you want to catch bugs, Cluster Manager is a virtual necessity.