Scaling a site or app is a tricky topic to tackle. There’s no shortage of technologies out there to increase performance, spread load, distribute databases and so forth; the difficulty is choosing from the sheer volume of options and permutations.
It’s widely understood that languages don’t scale, but how should you choose your stack, caching techniques, hardware (or whether to go virtual or cloud), monitoring tools and backup solutions? How should the database be structured and in what way will code upgrades / bug fixes / features be rolled out?
Highscalability.com covers this broad range of topics and, helpfully, has plenty of real-world examples. Ever wondered how Facebook deals with a staggering 2.7 million photo uploads every 20 minutes, or how Stack Overflow holds up with only a handful of servers and many million uniques a month? Here are a few links to some detailed rundowns:
- Facebook – Facebook in 20 Minutes: 2.7M Photos, 10.2M Comments, 4.6M Messages
- Netflix – Continually Test by Failing Servers with Chaos Monkey
- The Onion – Caching 404s Saved the Onion 66% on Server Time
- Squarespace – A Grid Handles Hundreds of Millions of Requests a Month
- Stack Overflow – Architecture
Salesforce have always been very open about their force.com architecture; if you’re building an app requiring multi tenancy, their white paper and webcast covering their platform are well worth a look. As ever, Stack Overflow has plenty of interesting discussions, so be sure to read through the questions tagged ‘scalability’.
I’d love to hear your recommended scalability resources, so do please post them in the comments!