||New Reviews| |Software Methodologies| |Popular Science| |AI/Machine Learning| |Programming| |Java| |Linux/Open Source| |XML| |Software Tools| |Other| |Web| |Tutorials| |All By Date| |All By Title| |Resources| |About||
Keywords: Web applications, hardware platforms, scalability
Title: Building Scalable Web Sites
Author: Cal Henderson
Verdict: Better at the hardware side of the platform than the software development side.
'Building Scalable Web Sites' is an odd title really. What does it mean? Is it about the design of massively scalable web applications? Does it cover web architectures? Hardware, software or both? The fact is that this book covers aspects of the entire platform - from the nuts and bolts of hardware and operating systems, to the design of development environments, the functional layering of application architectures and more.
This mix of topics makes for an uneven sort of read, with a lot of jumping around from one topic to the next. On the plus side it means it's easy to pick a topic and dive into that chapter. On the minus side it feels like the book is missing an internal structure - it's as though the author's just listed a whole bunch of things to think about and written about each of them in turn.
For example we have a couple of opening chapters which provide the context for the book - how to create a web application platform (hardware and software) that is highly functional, scalable and affordable. But from there it moves to development environments (source control, using staging servers, bug-tracking etc - no mention of using virtualisation in development environments though), internationalisation and localisation, then we're looking at security and the dangers of cross-site scripting and SQL injection attacks. From there it's email then remote services and… You get the picture, it jumps around a lot. Much of this material is independent of the size of your web site or application.
But, just as you're wondering whether you wouldn't have been better off picking up a book of web development in general, the tone changes. Chapter 8 looks at bottlenecks and profiling. All of a sudden we're back to looking at detailed issues to do with scalability. This is followed by a chapter on scaling web applications, with material on load balancing, selecting the right MySQL engine, database partitioning, storage redundancy, caching and more. This part of the book is much stronger and more pertinent than the material explaining the wonders of unicode.
The final couple of chapters look at monitoring and data feeds (RSS, RDF etc).
As should be clear by now, this is a book that sets out to cover the ins and outs of building a complete hardware and software platform for a web site along the lines of Flickr (author Cal Henderson is the engineering manager there). Unfortunately the book doesn't quite come together. The chapters on development environments are too generic and are better covered elsewhere. It's when looking at the hardware side of the platform that the book really takes off and which provides the reader with the greatest value.