The Technical Architecture Behind Facebook
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
The UC San Diego Center for Networked Systems
The Webcast is here
Direct Video Link
This is a summary of the technical aspects of the webcast
Building the Facebook team of executives
It can’t be stated enough. Success is about getting the right people on the team and the wrong people off the team. Every successful Venture Capital firm knows that they are investing in people – not ideas. If you have the right people for your entrepreneurial venture VC’s know that, even if the idea is in need of refinement, the right people will get it right. When you pitch a VC you are really pitching yourself and the team as much (or more) than the idea itself.
Who is the VP of Technology at Facebook
Jeff Rothschild is Vice President of Technology at Facebook, where he focuses on scalability and performance. Prior to Facebook, Jeff focused on storage management and Internet services as an investor and entrepreneur. He previously co-founded Veritas Software, where he was responsible for product strategy and architecture. Jeff also co-founded Mpath Interactive/Hearme, the Internet multiplayer games and voice chat service, where he served as Vice President of Engineering. He is also a consulting partner with Accel Partners and during his tenure has worked with Walmart.com, Rhapsody Networks and Mendocino Software. Jeff holds a bachelor’s degree in psychology and a master’s degree in computer science from Vanderbilt University.
Friendster founder on the rise and fall of America’s first big social network