Author: Cal Henderson
Publisher: O'Reilly
Review by: Cosimo
Rating:
Date: 2006/10/21
The cover of the book says it all: "The Flickr Way". This book is about technical and practical solutions to help maintain and grow a scalable and performing web application. These solutions come from the huge experience of Cal Henderson, the author, as engineering manager of Flickr, the Yahoo-owner photo sharing giant web site.
Main topic is the scalability, that very often is confused with performance.
A scalable system is not necessarily a fast system.
Scalability means the property of an architecture or a system to
keep the same performance level, given the growing user (or data) base.
Author says (and he's right!) that scalability doesn't mean "use Java".
Let's break this false myths!
Scalable systems can be implemented with any language, interpreted or compiled.
The book has eleven chapters and 330 pages in which the design and
development of web applications are covered from many possible points of view.
For example, management of hardware requirements, how it should support
our application growing needs.
Design a good web site might also mean that you have to consider
mean lead times for your hardware suppliers, data center facilities location and availability,
electrical power and internet connection backup lines.
Development teams will particularly enjoy chapter 3, entirely dedicated to development environments, where the three rules are explained:
Other chapters talk about I18N, L10N,
and Unicode,
data security and integrity, with particular attention to
Cross Site Scripting and SQL Injection problems,
automatic management of emails, access to remote TCP/IP services.
In every chapter, topics are explained in detail, in simple words, without
"too-technical" talk. Where relevant, code examples and references are provided,
often in PHP and Perl, or even other scripting languages, such as Python or Ruby.
This book provides useful guide lines for a range of web applications starting from single PHP scripts to complex 1+ million code lines of Perl objects. In this way, you can prepare the growth of your application by several orders of magnitude. That might happen or not, anyway... ;-)
Other important and easy-to-read chapters are dedicated to critical aspects such as performance bottleneck detection and analysis, and application statistics and monitoring.
I suggest this reading to web developers or engineering managers searching for a broader vision of their everyday work. You will benefit from the precious experience of Henderson and his team during the development and growth of Flickr.