as promised, I would like to post the outcome of the whole story. The mentioned TV show ("2 Minuten 2 Millionen", the Austrian version of the US show "Shark Tank") took place last week.
In short, we didn't have any issues. I least I didn't notice any.
Since I asked the question the customer decided to move away from WordPress to a course booking systems that also provides the whole website. Like WordPress it's a kind of CMS, it's shared hosting, but unlike their previous server we don't have control over the infrastructure or webserver settings at all.
Before the event I did several load tests using the free service of loader.io, which indicated that page load time increase drastically when more than 100 simultaneous requests are made, at 500 requests page loads took nearly 30 seconds or timed out at all.
My own (not optimized) wordpress installation in comparision was able to handle 1000 simultaneous requests with load time up to 10 seconds, but reaching 1200 requests it just stopped delivering pages.
As we couldn't optimize the server, and because it was quite fast already (without load: first byte after 200ms, full page 2 seconds), we decided to go for a CDN, Cloudflare in that case.
And that basically solved the issue. Without load you see first byte times of 30ms, full page load around 0.9 seconds.
In a 1 minute test ramping up loads from 0 to 5000 simultaneous requests the first byte time increased constantly to 500ms, full page load around 2 seconds.
Wow, That was fast. The CDN delivered 180 GB of data to the clients during that minute, only 180 MB got through to the real server.
During the TV show, to be exact, during the 15 minutes my customer was on stage, we saw a constant increas of active visitors up to 1000. According to Google Analytics live view.
Of course that doesn't mean 1000 parallel requests, those were spread of a minute or so.
As a result, the CDN covered the load nicely. No outage, no delays.
But a CDN has some drawbacks that I had to explain to the customer. If you should ever try it, keep the following in mind:
- While the CDN is active, changes you make to the website will not be visible. For last minute changes you can activated the "development mode" that temporarily pauses caching. Don't forget to clear the CDN cache before the event.
- Consider that it takes time to setup and test a CDN. Test your pages with mobile devices, too. You may find that it doesn't work for iOS, because some pictures are not loaded. CDN support or Google will be able to help, but you have to see the issue first. And the required DNS changes take time to propagate.
- Use loader.io to run load testing
- Ensure that the most affected pages don't load stuff from many sources, but are mainly static. Be aware that loading e.g. a script from an external, slow server will break the whole thing. The CDN can't cache those.
- Talk to your hoster! Do NOT run performance test without their permission! Like in my case, they may actually have suggestions for CDN configuration (options to set, exclusions to make)
All in all, it wasn't too complicated and the result was awesome.
And right after the tv show, I switched the CDN off, because it's a pain if you work on your pages :)
Hope this helps,