I have a close friend who started to learn programming. He want to be a backend web developer. It’s a great book about building scalable websites https://www.amazon.com/Building-Scalable-Web-Sites-Applications/dp/0596102356 but it was written in 2005 and now we have clouds and containers.
So, a question is. Is there a modern version of this book or on this topic? Could you recommend any title?
There are [whole books](https://www.amazon.com/dp/0596102356/?tag=stackoverfl08-20) on this subject. This is too broad for a question on Stack Overflow.
I've worked on a few sites that get millions/hits/month backed by PHP & MySQL. Here are some basics:
Cache, cache, cache. Caching is one of the simplest and most effective ways to reduce load on your webserver and database. Cache page content, queries, expensive computation, anything that is I/O bound. Memcache is dead simple and effective.
Use multiple servers once you are maxed out. You can have multiple web servers and multiple database servers (with replication).
Reduce overall # of request to your webservers. This entails caching JS, CSS and images using expires headers. You can also move your static content to a CDN, which will speed up your user's experience.
Measure & benchmark. Run Nagios on your production machines and load test on your dev/qa server. You need to know when your server will catch on fire so you can prevent it.
Check out my blog post about scalability too, it has a lot of links to presentations about scaling with multiple languages and platforms:
http://www.ryandoherty.net/2008/07/13/unicorns-and-scalability/
I'd never heard of the C10K (http://www.kegel.com/c10k.html) but I love scaling issues and this looks to be some fascinating reading. Thanks!
EDIT Interesting annecdote... Cal Henderson is the author of "Building Scalable Websites" http://www.amazon.com/gp/product/0596102356 and has worked in "the trenches" as the lead engineer of FLICKR and developer at B3TA.
Apparently his newest company http://tinyspeck.com/ is using node.js for their game engine.
Assuming he's planning on scaling to a reasonable size, that seems to be a pretty resounding endorsement that there's at least something going for it. I mean ... that guy's got a bit of experience in working at scale.
great list. I'll take some time to go through this. To this I'd add the
- JOS software reading list [0]
- JOS management reading list [1]
There are gaps in these lists but pretty much cover the best for both programmers & business - types. But the lists needs updating as I note pg's 'Painters & Hackers' is not listed nor is Cal Hendersons 'Building Scalable Websites' [3].
Have a look at Cal Henderson's, 'Building Scalable Websites' by O'Reilly
http://www.amazon.com/Building-Scalable-Web-Sites-Applications/dp/0596102356
he's the guy behind Flickr.
Also have a look at highscalability.com, They have some of the architectures of the most loaded sites out there.
I thinks that these ones are useful:
Thanks for you anwser!
I have a close friend who started to learn programming. He want to be a backend web developer. It’s a great book about building scalable websites https://www.amazon.com/Building-Scalable-Web-Sites-Applications/dp/0596102356 but it was written in 2005 and now we have clouds and containers.
So, a question is. Is there a modern version of this book or on this topic? Could you recommend any title?
Thanks a lot for any tips ;-)
Tom
Over the past year I've had to come up to speed on this question for a project my company's working on, and I've found these resources extremely helpful: Todd Hoff's highscalability.com; Scalable Internet Architectures, by Theo Schlossnagle; and Building Scalable Web Sites, by Cal Henderson. Highscalability.com in particular will point you to many good presenations, tutorials, books, and papers, and is a great place to start. All of the advice is practical, and based on experience at sites like Flickr, Twitter, and Google.
BTW, scalability is not performance. A perfectly scalable system is one that has a fixed marginal cost to add additional users or capacity.
Building Scalable Web sites has a nice section on handling email. It's written by a Flickr developer.
alt text http://www.lsl.com.au/images/images-ref/building-scalable-website.jpg
I've worked on a few sites that get millions/hits/month backed by PHP & MySQL. Here are some basics:
I'd recommend reading Building Scalable Websites, it was written by one of the Flickr engineers and is a great reference.
Check out my blog post about scalability too, it has a lot of links to presentations about scaling with multiple languages and platforms: http://www.ryandoherty.net/2008/07/13/unicorns-and-scalability/
EDIT Interesting annecdote... Cal Henderson is the author of "Building Scalable Websites" http://www.amazon.com/gp/product/0596102356 and has worked in "the trenches" as the lead engineer of FLICKR and developer at B3TA.
Apparently his newest company http://tinyspeck.com/ is using node.js for their game engine.
Assuming he's planning on scaling to a reasonable size, that seems to be a pretty resounding endorsement that there's at least something going for it. I mean ... that guy's got a bit of experience in working at scale.
- JOS software reading list [0]
- JOS management reading list [1]
There are gaps in these lists but pretty much cover the best for both programmers & business - types. But the lists needs updating as I note pg's 'Painters & Hackers' is not listed nor is Cal Hendersons 'Building Scalable Websites' [3].
Reference
[0] Joel On Software 'Book Review, reading list'
http://www.joelonsoftware.com/navLinks/fog0000000262.html
[1] Joel On Software, 'Management reading list'
http://www.joelonsoftware.com/articles/FogCreekMBACurriculum.html
[3] Cal Henderson, 'Building Scalable Web Sites, 978-0596102357':
http://www.amazon.com/Building-Scalable-Web-Sites-Applications/dp/0596102356