Book: The Art of Scalability

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.

Bothered by SLOW Web UI to manage vSphere? Want to manage ALL your VMware vCenters, AWS, Azure, Openstack, container behind a SINGLE pane of glass? Want to search, analyze, report, visualize VMs, hosts, networks, datastores, events as easily as Google the Web? Find out more about vSearch 3.0: the search engine for all your private and public clouds.

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.

This entry was posted in Cloud Computing and tagged , , . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

5 Comments

  1. Posted December 5, 2011 at 2:16 am | Permalink

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

  2. Posted December 5, 2011 at 11:54 am | Permalink

    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.
    Steve

  3. Posted December 5, 2011 at 2:51 pm | Permalink

    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. Posted December 5, 2011 at 7:43 pm | Permalink

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

  5. Posted December 5, 2011 at 11:18 pm | Permalink

    Steve,
    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 :)

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

You may use these HTML tags and attributes <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

  • NEED HELP?


    My company has created products like vSearch ("Super vCenter"), vijavaNG APIs, EAM APIs, ICE tool. We also help clients with virtualization and cloud computing on customized development, training. Should you, or someone you know, need these products and services, please feel free to contact me: steve __AT__ doublecloud.org.

    Me: Steve Jin, VMware vExpert who authored the VMware VI and vSphere SDK by Prentice Hall, and created the de factor open source vSphere Java API while working at VMware engineering. Companies like Cisco, EMC, NetApp, HP, Dell, VMware, are among the users of the API and other tools I developed for their products, internal IT orchestration, and test automation.