Most Helpful Customer Reviews
Building Scalable Web Sites based on 0 ratings. 2 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.