What You'll Find Inside
The most important thing about understanding how to build big systems is realizing that you should respect them.You need to understand the terminology, the teams, the business, and the responsibility.The second most important thing to learn is how not to build big systems.
This book falls into two sections. In the first section we look at big picture issues, mostly in the realm of management and operations of mission-critical systems. In the second section, we jump feet first into some serious engineering discussions.
Management and Operations
The first three chapters discuss what it truly means to work with big systems. Although many books have a thousand pages of technical details and examples, this book is terse and to the point.The first three chapters will satisfy both the technical and nontechnical person who wants insight into why working in large, mission-critical environments is challenging. If you hit something technical that you don't understand, just barrel on through it, or ask your engineering staff, perhaps a systems administratorthey just love that.
Knowledge you'll gain:
The second part of this book becomes more technical with each chapter as we discuss engineering solutions to real-world problems. Chapters 4 and 5 are a testament to the confusion surrounding high availability (making sure things are...you guessed it, available) and load balancing (which has nothing to do with availability).Too often these terms are used interchangeably and without a care; that should stop.
The rest of the book is a mixture of case studies and discussions of design approaches. It varies from conceptual and light on the technical details to extremely deep exploration of a problem and its solution.
We will focus on presenting solutions to problems rather than implementations of solutions to problems. Focusing on the implementation in a specific language is a good way to lose the attention of a programmer of a different language.The language is mostly irrelevant. I can't count the number of times I've heard people say "Java doesn't scale" or "PHP doesn't scale." No language scales; solutions scale. By mixing up the examples to use a variety of operating systems, languages, and other technologies, I hope to have you thinking about the nature of the solution instead of the details.
Knowledge you'll gain: