The rollout of the Healthcare site last week should serve as a lesson to aspiring developers everywhere of a few different but equally important tenets… chief among those –
- If you’re going to expect a lot of hits, load test your hardware
- If load testing fails, upgrade your hardware
- If load testing STILL fails – check your code
Below is a screenshot of a “waterfall” showing the loading of the signup page (I should note that I didn’t take the initial SS, and I’m not sure who did). It makes a grand total of 94 HTTP requests for assets (images, JS, HTML, etc.). Notice how nearly every one of them is for “www.healthcare.gov”. Most of those items being loaded are “stock” jQuery assets – which could easily be offloaded to Google’s CDN, Cloudfront, etc. Static images could be moved to another CDN. I highly doubt they’ve customized any of the default JS files for the site.
Point being, some of the hangups of the site could have been reduced from day one by an offload. I’m not saying that loading all these files from other sourced would have reduced the glitches, but it would have reduced the HTTP requests against whatever hardware is powering this site (and I’m sure it’s quite beefy). But when you throw enough HTTP requests at Apache, it eventually clogs up and says “I give up!”
11 CSS files, 56 JS files, no caching on those… Pretty sure a shared hosting provider by now would have suspended the account. 😉 I’m also giggling a bit because I just checked the source code, and they commented out the “Google Fonts” in the header, thinking that it would help with load.