CloudFlare connected to load balancer which balances across an automatically scalable web server pool which connects to the dedicated search instance and the backend MySQL database. We use several performance tweaks including the CDN and reverse proxy from CF, opcode caching on the web servers, and query caching on the DB. We used to use a more bespoke DB caching technique but when we rebuilt the architecture in the summer we thought we'd leave it out as a potential performance gain in the future as this summer was pretty much about optimising the infrastructure to the specific challenges of this forum software. Just getting out from under the mess that was phpBB was a big deal for us. The above sounds complicated and overkill but it's actually very efficient for what it is; it's an idea that we should have lots of little worker ants rather than one big Queen who we only need 5% of the time.
The big issue with CDNs and caching solutions is how quickly they become invalidated here during rush hours. The requests for static content aren't really the strain, our bottleneck is always in processing power for PHP hence the scalable pool of web servers which give us more horsepower. The change to the forum software helped alleviate many DB issues as the queries are written in a much more sane way compared to phpBB, and we felt for an extremely long time that we were fighting against the software for performance rather than the actual infrastructure resulting in long hours attempting to optimise something that was neither designed or capable out of the box with dealing with the traffic that we wanted to put though it.
You have to remember that only a few years ago when I came on board to help with performance we had 7,000 members, a database of 60,000 posts about 250 people on at peak times. We were running on a shared IIS 6 VPS hosted by some extremely unhelpful hosts. Now we have 58,000 members, 7.7 million posts in the database and about 2000 people on at peak times and are hosted by Amazon. We're playing at a different level than we were originally and much of what we've learnt has been learnt through trial by fire.
And the site is still growing, and it still throws up new challenges and new problems for us to deal with every day and probably will for the rest of our lives. Players and managers come and go, posters and mods come and go but the site never stops growing, never stops demanding another way to find performance. This is always why I'm arsey about blocking ads - the ads supplement the budget for the site and I know that next month we're going to need better performance than we had this month and the amount of ad blockers is increasing which means ultimately the budget will get smaller for it. To be fair Ric has never turned down any request I had to add something but he is just a bloke rather than a faceless internet corporation and this stuff does come out of his pocket when the ads don't pay for it. We're not Google here, look again at the progression of those numbers above.
Running here is what I imagine having a really good kid who has gone off the rails a bit is like. Sometimes you get woken up at 3am because they're behaving badly, most of your day is spent thinking about them and what could improve them, the amount of attention that you give them is a constant source of worry for either too much or too little depending on the mood of the day, but ultimately you cherish them and want them to succeed.