This book provides design and operation strategies for open source internet networks. The book should be shelved in the computer section of the bookstore, in the Open Source, Networking, and Linux subsections.
Contents at a Glance
Introduction
1 Scaling Up (and Down) 5
2 Principles for Avoiding Failure 11
3 Mission-Critical Environments 25
4 High Availability.
HA! No Downtime?! 37
5 Load Balancing
and the Utter Confusion Surrounding It 61
6 Static Content Serving
for Speed and Glory 75
7 Static Meets Dynamic
Adding Caches to Reduce Costs 105
8 Distributed Databases Are Easy, Just Read the
Fine Print 137
9 Juggling Logs
and Other Circus Tricks 169
10 The Right Tool for the Job 199
A Spread 227
Index 247
As a developer, you are aware of the increasing concern amongst developers and site architects that websites be able to handle the vast number of visitors that flood the Internet on a daily basis. Scalable Internet Architecture addresses these concerns by teaching you both good and bad design methodologies for building new sites and how to scale existing websites to robust, high-availability websites. Primarily example-based, the book discusses major topics in web architectural design, presenting existing solutions and how they work. Technology budget tight? This book will work for you, too, as it introduces new and innovative concepts to solving traditionally expensive problems without a large technology budget. Using open source and proprietary examples, you will be engaged in best practice design methodologies for building new sites, as well as appropriately scaling both growing and shrinking sites. Website development help has arrived in the form of Scalable Internet Architecture.
Theo Schlossnagle is a principal at OmniTI Computer Consulting, where he provides
expert consulting services related to scalable internet architectures, database replication,
and email infrastructure. He is the creator of the Backhand Project and the Ecelerity
MTA, and spends most of his time solving the scalability problems that arise in
high-performance and highly distributed systems.