Found 5 comments on HN
ruckusing · 2011-02-23 · Original thread
I've found "Scalable Internet Architetures" by Theo Schlossnagle to also be quite valuable. It contains general advice on how to approach problem solving when it comes to building uh, scalable architectures.

rosariom · 2011-01-06 · Original thread

I think this is a hard one without working on a big project with senior people. I struggled with this for years and still do but have gotten a little better thanks to senior developers guiding me. I think besides reading books and attending lectures or listening in on talks online, I think you need to find a problem sizable enough and build it from scratch. My work with senior guys has shown me that designing on paper and the white board is essential to tackling the problem for understanding and eventually building it. The patterns will reveal themselves as you go through this exercise if any patterns are needed at all, and I think this is something you definitely will not learn overnight but overtime by getting your hands dirty. If you have not visited this site, please do so. It has tons of experts speaking on it. I have been able to incorporate some of what I have learned from here to the job. A quick link to how YouTube was built:

Really good talk with lots of jewels. Another good book for you:

Hope this helps.

pala · 2010-12-09 · Original thread
Not necessarily programming, but very interesting for anyone interested in scalable architectures:
mindcrime · 2010-07-13 · Original thread
I'm still not the world's foremost expert, but what I do know I've learned through a combination of trial and error, reading books (I'll edit this later and put in a couple of specific titles), reading stuff on the 'Net and classes I took in school (I did a degree in "High Performance Computing" which had some useful aspects to it).

A good place to start, if you're not already familiar with it, is High Scalability:

Edit: book recommendations:

Scalable Internet Architectures -

Linux Clustering - Building and Maintaining Linux Clusters -

High Performance Linux Clusters -

Linux Enterprise Cluster -

Java Message Service -

Java Message Service API Tutorial and Reference -

Enterprise JMS Programming -

Hadoop: The Definitive Guide -

Pro Hadoop -


It's important to understand the difference between vertical scaling and horizontal scaling. Horizontal is very en vogue these days, especially with commodity hardware. Why? Because you can add power incrementally without spending tons of money upfront, and without requiring a "forklift upgrade" (that is a reference to needing a forklift to bring in a new mainframe or minicomputer). This is a pretty good article on the topic:

As popular as horizontal scaling is, don't ignore the possibilities of going to bigger hardware though. It has it's own advantages, especially when you start talking about physical floor space to store servers.

Of course "cloud computing" changes some of this, both by making it cheap and easy to add VPS's to scale horizontally, or by making it possible (sometimes) to easily add more processing power, RAM, etc. to your "server." Read up on Xen, KVM, EC2, etc. for more on that whole deal.

pistoriusp · 2007-12-18 · Original thread
Scalable Internet Architectures by Theo Schlossnagle was a good introduction for me.

Get dozens of book recommendations delivered straight to your inbox every Thursday.