Home > Cloud Computing > Book: The Art of Scalability

Book: The Art of Scalability

December 5th, 2011 Leave a comment Go to comments

Just finished reading the book The Art of Scalability: Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise by Martin Abbott, Michael Fisher. The book draws on authors’ experiences working at PayPal/eBay and other Internet companies, and covers many aspects of scalability including people, organization, process, and technology. According to Yishan Wong, who used to work under the authors and is now an engineering director at Facebook, “the opportunity to directly absorb the lessons and experiences presented in this book is invaluable to me now working at Facebook.”

The authors made a good point that people, and sometimes processes as well, are more important than technology to deliver scalability. I think it’s probably true for other engineering disciplines as well.

Lost VMs or Containers? Too Many Consoles? Too Slow GUI? Time to learn how to "Google" and manage your VMware and clouds in a fast and secure HTML5 App.

The book even has two pages on CMM/CMMI(Capability Maturity Model Integrated). When a book or article includes an introduction on it, I think it’s an indication that it may be a bit verbose or too theoretical for pragmatic practitioners. That is why I didn’t read the book from cover to cover. Instead, I find the conclusion and key points sections at the end of each chapter are pretty helpful. So I read all of the conclusions and key points, and whole chapter when I need to.

As a technologist, I am more interested in technology than anything else. I found the AKF’s Twelve Architecture Principles in the book worth mentioning here.

  1. N+1. It means you always have redundancies for everything. Even better is you can have three, which is the Rule of Three.
  2. Design for rollback. When a new version doesn’t work, you can always to roll it back to the previous working version.
  3. Design to be disabled. Then you can turn off individual features as needed to isolate problems.
  4. Design to be monitored. You can only take actions only when you know something goes wrong or out of range.
  5. Design for multiple live sites.
  6. Use mature technologies.
  7. Asynchronous design. The caller of a service should not have to wait for a process, therefore can improve parallelism.
  8. Stateless systems. When a system is stateless, you can easily bring up or down a system easily. Note: it’s true for cloud computing as well. Check my aritcle: stateless VM.
  9. Scale out not up. It’s much higher chance to hit an up limit than an out limit.
  10. Design for at least two axes of scale: (AKF Scale Cube: X-All Work Evenly Distributed; Y-Work Distributed by Type of Action; Work Distributed by Customer Location.)
  11. Buy when non-core. It basically says don’t invent your own wheel, as you know in software.
  12. Use commodity hardware.

Please note that as the book title suggests, these principles are for the Web architectures. They may or may not apply to enterprise infrastructure and applications. If you work on IT for enterprises, you need to think more before adopting them.

Categories: Cloud Computing Tags: , ,
  1. December 5th, 2011 at 02:16 | #1

    Thank you for that excellent Christmas shopping tip :-)
    I wonder how much of the principles can be adopted for enterprise infrastructure in general…

  2. December 5th, 2011 at 11:54 | #2

    Hi Joerg,
    Enjoy your reading in the holidays! :-)
    I think #1, 4, 6, 7, 8, 9, 11 should be applicable for enterprises. The list varies from case to case though.

  3. December 5th, 2011 at 14:51 | #3

    Steve and Joerg,
    Thank you both for the review and the order :) You may find Scalability Rules, our most recent book, interesting as well. It is a codification of 50 rules related to the concept of scalability. Enjoy and thanks agian!

  4. December 5th, 2011 at 19:43 | #4

    Hi Marty,
    Thanks for your great book! Does your latest book cover enterprises as well?

  5. December 5th, 2011 at 23:18 | #5

    Thanks so much for the kind words on The Art of Scalability. The new book is focused more on technology than the process and organization aspects of scale though we do have a few rules on those as well.. While some of the rules are web-centric (the use of cache headers, etc) most of the rules apply to any type of technology. We revisit the scale cube and build upon it. The book is smaller and meant to be more easily used as a reference (much less verbose).

    We expand upon our architectural principles in many of the rules and add several more. We also cover some engineering principles such as guarding against over-engineering :)

  1. No trackbacks yet.