Learn the tricks of the trade so you can build and architect applications that scale quickly--without all the high-priced headaches and service-level agreements associated with enterprise app servers and proprietary programming and database products. Culled from the experience of the Flickr.com lead developer, Building Scalable Web Sites offers techniques for creating fast sites that your visitors will find a pleasure to use.
Creating popular sites requires much more than fast hardware with lots of memory and hard drive space. It requires thinking about how to grow over time, how to make the same resources accessible to audiences with different expectations, and how to have a team of developers work on a site without creating new problems for visitors and for each other.
Presenting information to visitors from all over the world
Integrating email with your web applications
Planning hardware purchases and hosting options to have as much as you need without breaking your wallet
Partitioning and distributing databases to support large datasets and simultaneous transactions
Monitoring your applications to find and clear bottlenecks
* Providing services APIs and using services from other providers to increase your site's reach and capabilities
Whether you're starting a small web site with hopes of growing big or you already have a large system that needs maintenance, you'll find Building Scalable Web Sites to be a library of ideas for making things work.
Maybe this book was relevant when it first came out, but going through it in early 2009 I couldn't believe how many inaccuracies were present throughout the book. Completely outdated and misleading information on web services, XML feeds, and the .NET platform.
The book should have just been called "Why I Am In Love With .PHP and MySql And Don't Believe That Any Other Combination Can Be Used To Build A Successful Website".
I found myself shaking my head repeatedly, thinking "Have you ever actually *used* the .NET platform? It totally DOES do exactly what you're saying it can NOT do."
I'm not a defender of .NET. I could honestly care less whether or not somebody uses it. It just that it happens to be what my work place does all its development in right now, and I've been here for 7 years. Been doing .NET for almost one year now, and while I'm still learning my way around it, I have definitely done things that the author claims I can't.
The book IS outdated, and irrelevant in the current tech scenario. But, it certainly is very good in a way - it teaches the experienced programmer about the necessary foresight one must have while building an application that s/he wishes would scale. Sure there is the famous quote - "Plan to throw one [version] away; you will, anyhow.", but this book helps you to avoid doing that.
This would be a great book to give to someone working on their first web service. I wish I had read something like it when I first started.
The author opts for breadth rather than depth, covering unicode, data sanitation, load balancing, database sharding and replication, SQUID proxies, monitoring, email servers, and many other topics. Fortunately, he acknowledges that he's only skimming the surface of many of the areas, and provides ample references to other books or software projects.
The main caveat is that this book is heavily oriented towards the LAMP stack and may be of limited use to those building web services on alternate technology stacks.
Cal is not a great writer, but he is a great resource and so if your MO is to design a large website well from the get go Cal will point you on the roads you need to walk down. The book was practical, but obviously couldn't go too deep into any of its topics, layered architectures, unicode, security, email, database scaling, caching, monitoring, and APIs. It came with a decent amount of redundancy and to me some parts were pointing to topics so advanced that I just had to shrug a maybe later. But then that's important, if Alexander had bought a map before he left Macedonia he might not have been so disappointed when he ran out of empires to conquer.
Most if the book is outdated and irrelevant, the tools and mechanisms (MYSQL, PHP, XML-RPC, SOAP, RSS) is not something one would expect to see in a book on scalability in our iaas/paas/automatically sharded nosql/json/single page webapp world, however it is still a good book and I have enough notes after reading it to justify the time spent.
Great overview of the different types of considerations you need to be mindful of when building scalable web applications. Breadth valued over depth, but there are whole books on most of the topics covered, so it's worth the read as an introduction to mega-app issues.
Excellent book. it covers most of scalable website aspects. Very practical and enriched with examples. however, the flow of ideas is not clear and some topics are prematurely concluded. It also misses to cover important issues related to scalable website e.g. caching engines
Funny time back to 2006. Having the book back in the time, wow man, so much knowledge and experience. Overview of more advanced approaches (replication, web services authentication) can be still useful nowadays.
Right now this is a very very dated book. I has some historical value, as it helps you to remember how things were done several years ago. One example is that it discusses magnetic spinning disks a lot.