https://frrl.wordpress.com

A site of endless curiosity

Archive for March 22nd, 2011

The Technical Architecture Behind Facebook

with 3 comments

There is a lot of different elements behind the success of Facebook.  Of course it’s mostly about vision, timing, the right people, venture capital, good judgements at critical points in the history of Facebook, and so on.  It’s also about the availability of readily available technology and excellent technical architecture and engineering by talented people – Mark Zuckerberg playing a major role in the original programming and technical design of (the)Facebook.com from the beginning.

(the)Facebook.com also benefited from a history of the failure of other social networking systems that preceded  (the)Facebook.com.  One of the failures clearly in the mind of the architects, developers, and technical engineers of (the)Facebook was the failure of the social networking system Friendster.  Friendster may have been more successful had it been able to scale properly to meet the demand of the user base.  Friendster did not scale.

(the)Facebook.com was careful to ensure that before another segment of users was invited to register for the service (at the beginning they added schools in a very controlled process) there was sufficient capacity to handle the projected number of new users.

The Scale of Facebook

At the time of this writing there are about 400 million active users Facebook.  Facebook delivers 200 billion page views per month and the service is distributed across 30,000 servers.

So, from a technology perspective, how do you architect such a system?  What is the technology and architecture behind Facebook that can deliver 200 billion pages per month to 400 million active users with good response time?

The success of Open Source

There are many success cases that can be developed from Facebook.  The Open Source community is a clear beneficiary of the success of Facebook.  Facebook is written in open source software.  Enhancements, extensions, and innovations that Facebook made to improve performance and scalability of this open source software has been given back by Facebook to the Open Source Community. 

The Facebook presentation layer is written in PHP – 3 million lines of code.  The database tier is MySQL.  If anything validates the Open Source community its the ability of these open source tools to be able to deliver a high performance massively scalable system like Facebook.

The Technical Architecture behind Facebook

Jeff Rothschild is Vice President of Technology at Facebook.  He gave a presentation to the UC San Diego Center for Networked Systems.  In this webcast Jeff goes into detail about the technology behind Facebook – the architecture, the challenges they faced in building a high performance massively scalable system, how they solved these problems, the innovations and extensions they made to Open Source code (and gave back to the community), and those challenges for the Facebook technology that still exist and for which they are seeking solutions.

Abstract: Facebook has grown into one of the largest sites on the Internet today serving over 200 billion pages per month. The nature of social data makes engineering a site for this level of scale a particularly challenging proposition. In this presentation, I will discuss the aspects of social data that present challenges for scalability and will describe the core architectural components and design principles that Facebook has used to address these challenges. In addition, I will discuss emerging technologies that offer new opportunities for building cost-effective high performance web architectures.

You can find the links to this webcast, and a summary of the technology at the links below

Read the rest of this entry »

Written by frrl

March 22, 2011 at 2:38 am

%d bloggers like this: