Product Details
Building Scalable Web Sites: Building, Scaling, and Optimizing the Next Generation of Web Applications

Building Scalable Web Sites: Building, Scaling, and Optimizing the Next Generation of Web Applications
By Cal Henderson

List Price: $39.99
Price: $26.39 & eligible for FREE Super Saver Shipping on orders over $25. Details

Availability: Usually ships in 24 hours
Ships from and sold by Amazon.com

52 new or used available from $15.73

Average customer review:

Product Description

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.


Product Details

  • Amazon Sales Rank: #61001 in Books
  • Published on: 2006-05-16
  • Original language: English
  • Number of items: 1
  • Binding: Paperback
  • 330 pages

Features


Editorial Reviews

Review
"What this book gives, possibly uniquely, is both a look at the whole spectrum of building a service and some details of all the major stages. It's ideal to give to someone who has a tight focus or experience on a particular area, e.g. writing lines and lines of PHP code which kills the database or filer because the author has little appreciation of what happens at other levels of the system structure. This book would make an ideal guide to people who need to be given some indications of the world beyond a small area. It's also a good read for those who build web sites which may potentially get a large volume of traffic to learn from flickr and why they made the decisions they made." - Sam Smith, news@UK, September 2006

About the Author
Cal Henderson has been a web applications developer for far too long and should really start looking for a serious job. Originally from England, he currently works at Yahoo! Inc in Sunnyvale, California as the Engineering Manager for the photo-sharing service Flickr. Before Flickr, he was the technical director of Special Web Projects at emap, a UK media company. By night he works for a whole slew of web sites and communities, including the creative community B3TA and his personal site, iamcal. In his spare time, he writes windows software, develops web publishing tools, and writes occasional articles about web application development and security.


Customer Reviews

Scalability -- A Hot Topic5
When I first starting working on Web application development teams, I was a bit overwhelmed by the number of skills and range of knowledge needed to drive the project through establishing the technical foundations; design, development and testing iterations; to final staged release. Lots of things got discussed in team meetings that I had barely a clue about. Not only do I wish I had this book *then,* I wish all members of my teams could have it *now.*

Cal Henderson has a wide background in the area and is lead developer for Flickr, the photo sharing site that has gained deserved popularity and is often mentioned as the quintessential Web 2.0 application.

The author does an excellent job of spreading out before you the whole process at a high enough level so the book can be valuable for managers, designers, and all sorts of people involved in putting out the final product.

His focus is on program design and design implementation issues, not programming as such. Code is not neglected. Many points regarding design implementation are made with code examples and solutions.

I find this book so personally valuable in grounding me in a complex process, I give it the highest Amazon rating even though I found aspects of the book's organization to be completely incomprehensible. This is a book about scalable Web sites and applications but the author does not define scalability nor does he deal with the broad Web issues (like the scaling myth) until 60% into the book! Chapter 9, titled "Scaling Web Applications" should have been much closer to the beginning since it was a high-level view with no code, as the other chapters. I was also befuddled with placing the chapter on internationalization, localization, and Unicode so early in the book -- even before the chapter on data integrity and security. There is nothing like a mind-numbing Unicode glyphs and grapheme discussion to kill the pacing of a book! Skip the chapter entirely or read it last.

Organization anomalies aside, the author has a good writing style and he does not view humor as a blunt instrument. His four page analogy between layered architecture and an English trifle was worth the space he took. That's high praise from a guy who does a job that Henderson likens to whipped cream.

I wish all software developers would read this5
Unfortunately, I'm finding that there are still some in the software industry--from "two guys in a garage" to the largest corporation--don't know, follow, or believe software best practices. Suddenly when something goes wrong (e.g. the wrong version of a file was deployed, changes can't be rolled back, the application won't scale), everyone scrambles in an effort to figure out what happened. Oftentimes, if simple software practices were followed, many of these issues would never surface.

This book does a tremendous job identifying many of these best practices, identifies how to easily implement them--in almost any situation, and discusses application scaling techniques. As the book mentions, scalability is made up of three characteristics:
* The application can accommodate an increase in users
* The application can accommodate an increase in data
* The application is maintainable

Like any good book on application scalability, this one begins discussing the tiered architecture that is common in so many modern applications, and is a fundamental step in creating any truly scalable application. This follows into a discussion on source control--another fundamental part of keeping the application maintainable.

The author briefly discusses security issues by touching on cross-site scripting (XSS), SQL injection, and the like. The discussion is well written and thorough for the amount of time spent on the topic.

Finally, the author discusses many of the issues related to deployment of web applications, including system monitoring and alerting. There is also an excellent section on load balancing, techniques to keep databases scalable, and caching. Finally, the author ties the final section together by showing how to take data from a live production environment and use that information to continually improve the application.

This is an excellent read--a must if you are in the business of creating web applications. Whether your applications expect loads of 10 users or a million users, the techniques discussed in this book will make your application perform better and be easier to maintain.

Starts out off-topic, and then WHAM...5
...it's all there.

Maybe it's my background, but I found the first seven chapters to be....dull, and not directly about scalability. To be honest, I almost set the book aside and considered it money NOT well-spent. Then things started to heat up in Chapter 8, and in Chapter 9 it all comes together. That one chapter (9) is the highest density of useful information about website scaling that I've ever seen. There are literally gems on every page.

Make no mistake. This book is more of an overview of the landscape, with brief asides that are clearly brain-dumps from his Flickr experience. The author manages to touch on every topic area that matters, and provide simple overviews of the options available and when they should be applied. In that sense it's more like an informal design patterns book (lots of "yeah, I knew that" and "Ah! I had a feeling there was a pattern there" moments), with just enough detail to let me do intelligent googling for deeper insights on analysis, design, and construction of scalable systems.

Chapters 8, 9, and 10 make the book worth every penny.