In May-July of this year I did a talk on Building Scalable and Usable Web Applications in Indianapolis, Downers Grove, Milwaukee, Chicago and Appleton for our ArcReady series that we run in about 18 cities in the Central United States. One of the items I mentioned as a good reference for learning about the ins and outs of web site scalability was the book Building Scalable Web Sites by Cal Henderson, the chief architect of Flickr.
This is a great book for someone who wants to understand the issues with creating a truly Internet Scale application. The title of this book is a little misleading, because it is about much more than just scaling out your web site. With chapters on Internationalization / localization and other important topics, it really should be called something like “Handbook for creating an Internet application”. If you are a Flickr fan, it is also a very interesting peak into how some of the features of the site are implemented. This is one of the few technology books that I have read more than once, it is that valuable of a resource. It is also a great book to keep on the shelf and revisit specific topics as you work on creating your next great Internet web site.
I suppose that anyone could write a book on building scalable web applications, but there are a select few sites on the Internet that have achieved true Internet Scale. Internet Scale is a term that gets thrown around a lot, but to cut through the clutter I would just say that if you are in the top 100 traffic sites, you are pretty much there. And the fact that Flickr is a photo sharing site adds a lot to his discussions on scaling web applications. The fact that literally hundreds of people are uploading multi-megabyte photos to the site every minute, 24 hours a day is a real testament to the scalability of the site.
Standing the test of time
One of the hallmarks of a good technology book is that it stands the test of time (for at least a few years). You can go to any used books store and find lots of copies of Visual Basic .NET 1.1 books that are less than 5 years old that are collecting dust, because they were too wired into the specific features of the technology from that slice in time. They may have been great books at the time, but their shelf life (pun intended) was as long as the technology was new and hot, once Visual Basic .NET 2.0 came out, the 1.1 books were yesterday’s news. The Henderson book does a good job of focusing on the architecture and fundamental development issues around large scale web sites, as opposed to focusing on specific features in any platform, language, tool or technology. A good example of this is the fact that Flickr is not written on Microsoft technologies (most of it is PHP), but I got a lot out of it, even though I primarily work with the Microsoft web stack.
A word of caution
If you are currently experiencing a scalability problem with your web application, this book will not necessarily solve the problem for you. You will not turn to page 10 and see the list of common scalability issues, see that you are experiencing number 8 on the list and then turn to page 101 for the answer to that problem. This book does make you think about the root causes of the scalability issues in your application, and more importantly it is a great guide to follow as you start to add new features to your application.