Justice Roberts deciding vote and the SCOTUS (Supreme Court of the United States) majority opinion that the individual healthcare mandate was constitutional will certainly have implications for everyone. Personally I have my own opinion, but that is really not relevant here. Our mission at Sound Strategies is to ensure that our clients deliver their message to their audience.
We received an intriguing call on the Friday night before decision was to be rendered early the following week. Max Mallory, the technical lead for the SCOTUS Blog (www.scotusblog.com), asked us to review the website and its performance. The blog was very well positioned to share their firsthand analysis of the written judgment. Max was concerned that they would not be able to handle the inevitable crush of traffic that was only a few days away. They had built a clean and relatively simple WordPress blog that was clearly underperforming. As with many of our clients, someone had been there before us and had attempted to come up with a solution.
WordPress is an incredible tool for building and maintaining websites regardless of their content, target audience, or traffic. However, as websites become more successful certain inefficiencies need to be identified and corrected. There is absolutely no limit to how much traffic a properly optimized WordPress site can handle. Only the hosting platform can limit the amount of the traffic.
We spent the weekend cleaning up the inefficiencies in the application and though we felt the application could handle the traffic, we were not as sure about the current hosting configuration. Max and his crew were more comfortable with an alternate solution that would redirect all the traffic to a third party WordPress hosting provider. On Monday we learned that the actual decision would be on Thursday. This gave us two days to address the hosting platform and the decision was made to upgrade that so it could handle the estimated traffic.
The traffic estimates we were provided were larger than anything we had seen before. There was a clear potential for simultaneous links from several major news aggregators. The news aggregators such The Drudge Report, Huffington Post, etc. alone have huge daily traffic, now we were faced with a potential traffic spike that was several times the size of any traffic spike they might have. My brilliant senior technical team leader, Petr Voinov, and I were faced with quite a challenge.
Though we were initially doubtful that the traffic estimates would materialize, I was pleasantly surprised when they did, and in fact were actually quite accurate. The traffic started at 9am, and by 10am (decision time), the hosting platform was handling over 1000 requests per second. By 10:30am the domain had served up over 2.4 million pages. By the end of the day, the domain had served well over 5 million pages and at no time was there ever a noticeable slowdown.
Max and the exceptional team of legal experts at the SCOTUS Blog ended up with their biggest day ever (and yes we helped a bit)!
How It Was Done
Though the traffic spike for the SCOTUS Blog was certainly exceptional, it is very unlikely that anyone will need a hosting platform that can handle so much traffic. There are dozens of stories about the success of the SCOTUS blog (and even several mentions for Sound Strategies) and some touch on the nature of our efforts, but here are the things we did:
WordPress Optimization – Any plugins that were performing poorly were identified and then removed or replaced. Plugin developers rarely build their plugins with big traffic in mind and many plugins fail miserably when the traffic hits. In addition, the slow loading theme elements were identified and corrected. Theme developers are also guilty of failing to address performance issues. A comprehensive caching plugin was installed and carefully configured. WordPress is very resource intensive and even a single page uses significant resources. The caching plugin greatly reduced that load
Images – Any images that were oversized were identified and then replaced with images in web resolution. This greatly reduced the overall bandwidth load. The Amazon S3 Cloud performance was typically mediocre for certain critical images and those images were moved back to the server. This was required because the goal was a load time of less than half a second and the Amazon load time was much longer than that.
Server Configuration and Tuning – All Linux servers provided by hosts typically have only the Apache web server installed. Apache is desirable when dealing with PHP (programming language) and MySQL (database schema) which are the foundations of WordPress. However, Apache uses loads of server resources. All web pages have static elements (images, scripts, style sheets, etc.) that are better served using NGINX (another form of web server). NGINX was installed and carefully configured to serve certain page elements. Apache, NGINX, and other critical server elements were carefully configured to provide the best possible WordPress performance.
Traffic Handling – Four additional satellite servers were quickly built and configured specifically to serve cached web pages. The traffic was split randomly across the four satellite servers. When requests were made to the satellites they passed back the cached copies of the web pages without ever going to the primary server. The cached content on the satellite servers was periodically refreshed from the primary server. The satellite servers each had enormous capacity and together are capable of reducing the impact of some (not all) forms of DDOS (distributed denial of service) attacks.
The Final Word
There is actually a very interesting (and possibly controversial) lesson here. I contend that ANY properly optimized WordPress application running on a single server with several (2-4) lightweight web servers in front of it, and a decent CDN (content delivery network) can handle ANY traffic spike. This array does include any desired redundancy in case of hardware failure.
The real success of this for the SCOTUS Blog. President Obama was sitting in the oval office when he heard the wrong news on CNN. At the exact same time they anounced on TV that the individual mandate had been struck down, the SCOTUS Blog team was telling everyone it was upheld (see the Politico story below)!
SCOTUSblog survives major traffic spike – TechTarget
Sound Strategies, Inc.