Scalable Web Architecture, Processes, and Organisations for the Modern Enterprise
First-off, The Art of Scalability is not about the technical process of building a high-performance website. Instead, it’s aimed at technology executives, engineers and architects who will be developing an organisation and putting in place a strategy to allow a company grow; Rather than focus on the details of current technology, most of the book focuses on people and processes.
The book is broken into four sections: staffing an organisation, building processes that can scale, architecting scalable solutions, and then wrapping up with a chapter covering other issues and challenges that will pop up.
The first section looks at the role of people in a company. This section covers everything from roles and responsibilities to ideas about leadership and business issues. One of the topics that come up several times in the book is measurable results. This starts right in the first section. After an excellent discussion of traits of leadership and creating goals, there’s an interesting bit about that examines the U.S. constitution as a mission statement (p. 76). It makes interesting reading and illustrates some issues that will apply to likely less weighty goal setting tasks. At the end of this section, readers will be familiar with some of the positions that should be filled and a bit about the abilities of the people who will need to fill those roles.
The second section then looks at the processes. This chapter covers why the process is essential, responding to incidents and problems, controlling change in a production environment and architectural principles. It leads into the third section that looks into putting into place a system now that the process and personal issues are covered.
Section three covers various principals useful in designing scalable systems. One of the most valuable sections covers the “12 Architectural Principles” (p. 200) that apply to developers at nearly every level- as is the block called “good principles are…” (page 198) that sums up setting attainable goals. Readers are introduced to methods for isolating faults, the AKF Scale Cube (a technique for splitting applications or services to scale them, starting from a single monolithic application developed by the authors’ company) and other principles useful to consider when thinking about scaling. This covers different areas like splitting databases and applications, caching, asynchronous design and agnostic design for technology are also included. This section is the closest the book to spelling out real technical solutions to problems, but it’s still done at a high level. That’s not a criticism, for as the section on agnostic design points out, technology advances, so specific solutions might not be required in the future because the technology has overcome the issues.
The last section of the book is called “Solving Other Issues and Challenges” and serves as kind of a wrap-up to the book’s topics. This section includes an overview of grid and cloud computing and the issues that are encountered with these emerging technologies. Like the rest of the book, they don’t talk about product specifics much, but it does provide a good overview of the differences between these often used interchangeably technologies and the pros and cons of each.
While there is a lot of reading this book, the layout of the book helps. Readers will notice each chapter starts with a Sun Tzu quote, which for business books can be like that Nietzsche quote thrown up at the start of many an action movie, but the quotes are relevant to the chapter and make for a nice start to each. The chapters themselves are broken down into sections and many of the points, for instance, the 12 Architectural Principles are first stated in a shortlist and then expanded on over the rest of the chapter, making it easy to follow along.
Date published: 04-Feb-2010