Today I found a really interesting presentation of Flickr’s backend. You can download it here, but I warn you, this is hardcore techie stuff..!! There are also two interesting presentations of LiveJournal’s backend here and here.
This stuff is incredibly useful to us because it provides us guidance
for implementing the best engineering practices for our backend.
Information architecture is the core
of our business and I spend 60% of my time (at Adoos) thinking about
how to structure and organise information. Architecture is what makes
the application robust and scalable. How do I make sure this ship doesn’t sink when we try to grow from 1 million visitors to 50 million?
I would love to see also is a diagram of the architecture of AdWords
and Google Search, but unfortunately that’s not possible…
is possibly the best online photo management and sharing application in
the world. The application is built with PHP, Apache, MySQL using
InnoDB and MyISAM.
• PHP 4
• Smarty for templating
• PEAR for XML and Email parsing
• Perl for controlling…
• ImageMagick, for image processing
• MySQL (4.0 / InnoDb)
• Java, for the node service
• Apache 2, Redhat, etc. etc.
• One programmer, one designer, etc.
• ~60,000 lines of PHP code
• ~60,000 lines of templates
• ~70 custom smarty functions/modifiers
• ~25,000 DB transactions/second at peak
• ~1000 pages per second at peak
LiveJournal is a free blogging
service. They’ve written an excellent presentation of how to scale an
open-source web service from 1 server to 100+ servers.
– 100+ servers
– Linux, Debian
– Apache, Perl
– MySQL (InnoDB & MyISAM)
– perlbal – open source HTTP proxy
– memcached – open source distributed caching system
– mogileFS – opensource distributed file system
– Nagios, Cricket
– 50+ million dynamic pageview/days.
– 5+ million accounts.
– 30 GB of cached data.
– ~100,000 queries per second at peak.
Server architecture diagram: