July 17, 2007.
Recently I have been spending a lot of my time reading about building scalable websites. I've been in database land constructing mental comparison charts about PostreSQL, Oracle, and MySQL; Ive been dancing on the tomb of Apache and trying to get Memcached's autograph. So, I know a bit about scaling.
Phew. I'll give you all a moment to recover your composure.
Okay, so I really don't know much about scaling. This is why I recently ordered Cal Henderon's Building Scalable Web Sites. It's a book, one of those things made of dead trees. More precisely its a book about a field that is rapidly evolving. Nginx is the new Lighttpd. Lighttpd was the new WebBrick. PostgreSQL is actually fast. SQLite does row locking (okay, so this one's a lie, SQLite still hates you and your dirty concurrent ways).
Fortunately this book was written at a sufficiently high level that it mostly escapes immediate outdating. As one might expect it damns itself occasionally with details, but not to the point that it loses its value. Oh, its value, I should probably touch on that too.
Its worth derives from touching lightly on a wide array of topics and reading through it provides a good high-level image of the interconnected elements of scaling a web system. You probably know about databases and memcached, but you might not have thought about dealing with standards non-compliant mobile emails, or dealing with failure of an entire data center. If you have thought about non-compliant mobile email or other relatively detailed aspects of scaling, then this book is unlikely to provide much value for you. Its an overview, a well done one, but an overview nonetheless.
The ideal reader for Building Scalable Web Sites knows next to nothing about scaling web services. This book can help you build a framework to think about scaling, which is of immense value to someone unfamiliar with the field, but it won't flesh that framework out very thoroughly.
As for me, I enjoyed reading it, and it is well written (although I deduct points for a Fight Club reference, these really can't be socially acceptable at this point). I might stow it on a shelf somewhere... but I'm actually thinking about passing it off. Exempting amnesia I don't forsee it turning into a oft consulted reference. To be fair, I don't think any single book will acchieve for scaling what Knuth's The Art of Computer Programming has acchieved for algorithms (which is to say, universal hatred by students).
So go find a copy, take a look at the index, read the sections that seem unfamiliar (chapter nine's discussion on vertical and horizontal scaling of databases is particularly worthwhile), but I wouldn't recommend buying a copy unless you find scaling to be particularly daunting. But, if you do decide to buy a copy, you can buy Building Scalable Web Sites here.