Scaling software is a science – often overlooked. Everyone can fix a bug: the process is very straight forward – you replicate the bug, build a solution, prove the solution, and deploy it. But performance problems are far more nebulous. It is hard to find the problem – much less fix it once it is identified. You need performance tools, architecture expertise, full-picture knowledge of the whole system, and then the political backing to making it all happen.
But to help with my own understanding of the issues, I’ve been reading High Scalability (a site that “tries to bring together all the lore, art, science, practice, and experience of building scalable websites into one place.”) They get into some of the guts of some pretty complicated real-life examples and it is all good.
Last week they posted about 37signals Architecture (the makers of Basecamp, Backpack and Highrise.) There are some impressive numbers in there, but my favorite nuggets revealed were:
There are 2,000,000 people with Basecamp accounts.
37signlas only employs 30 servers.
If you ignore all of their other products, each server can support about 70,000 Basecamp users. That is really, really impressive. If you add in their full line or include their published goal to halve their server count in the next quarter or so, it only gets better. Don’t let any one tell you Ruby on Rails doesn’t scale. It does, and the numbers prove it.