Simple

Many years ago, I had to make a website. Slightly different to the normal websites we were churning out. It would be used in 5,000 locations, across 160 countries, by about 30 million people (at the time) a month. It showed weather, local news, and more content specific to each location. At the time Amazon EC2 was two years old, scaling was a still unsolved problem, and we had to make this thing bulletproof.

I often see two camps emerge at this point. The architect astronaut reaches for edge computing, distribution, redundancy, availability. A hundred tools each with their own unique ways of failing. Instead I took another route:

We hooked up an S3 bucket to a CDN (Akamai at the time, CloudFront didn’t offer various things we needed).

That was it. That was the hard part done. This setup never had a single outage in the ten years it was running (and I believe still running in some locations). It cost less pennies compared to other solutions.

Updates were all handled offline by a pair of servers. Based on the time of day at the location, the page received updates (for weather etc) every so often, written to the store and cleared in the cache.

There’s a lot of projects I look back on and go, that was a dumpster fire. But thinking how a simple, very-read-heavy application, stayed at 100% uptime for ten years for peanuts always makes me happy.