How do you design/architect a scalable application? Any suggestion of books or websites that could help to understand how to scale out applications?
Thanks
The best solution to most database scalability issues is optimizing SQL queries and implementing indexing strategies. By building articles and authors into a single query, you can dramatically reduce the volume of queries you're running.
This is a nice read on livejournal and how they've scaled their application over time.
danga.com/words/2004_mysqlcon/mysql-slides.pdf[PDF]
It might not be the sort of thing you're looking for, but it's one of the better "This is what we did and why" overviews on scaling.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With