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 San Francisco, California as the Director of Engineering 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.
Building Scalable Web Sitesby Cal Henderson, Cal Henderson
Learn the tricks of the trade so you can build and architect applications that scale quicklywithout 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/i>
Learn the tricks of the trade so you can build and architect applications that scale quicklywithout 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.
- O'Reilly Media, Incorporated
- Publication date:
- Product dimensions:
- 7.00(w) x 9.19(h) x 0.72(d)
Meet the Author
Most Helpful Customer Reviews
See all customer reviews
Do you have just a little experience with building dynamic web sites or applications? If you are, then this book is for you. Author Cal Henderson, has done an outstanding job of writing a book that is primarily about web application design. Henderson, begins by looking at some general software design principles for web applications and how they apply to real world problems. Then, the author gets you quickly up to speed with the issues involved with internationalization and localization, and suggests simple ways to solve them. Next, he deals with the integrity of the data received and stored by your application. He also looks at what receiving e-mail can add to an application, how to implement e-mail receiving semantics, and the various pitfalls that occur along the way. The author then continues by dealing with protocols, formats, and strategies for exchanging data between two or more components in a web application. Then, he looks at techniques for identifying and fixing bottlenecks in your architecture, both before they happen and when they start to bog your systems down. Finally, the author looks at the techniques for scaling each area of your application. This most excellent book looks at application architecture, development practices, technologies, Unicode, and general infrastructural work. Perhaps more importantly, this book is about the development of web applications.
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.