How, What and Why – On Scalability, Availability & Manageability (Facebook)

Mattias Geniar, Tuesday, July 6, 2010 - last modified: Monday, July 12, 2010

Since I've not updated this blog in quite a while, I'll share a very interesting video and mention its highlights.

Video: A Day In The Life Of A Facebook Engineer

Obviously, Facebook has seen amongst the most impressive scalability problems ever. And here are some of the interesting bits, which can be used to manage and tune high traffic & high availability websites.

  • HipHop for PHP: transforms PHP code to optimized C++ code, for greater CPU efficiency. Started as a "hack" on one of Facebook's Hackatons.
  • Memcached: duh ... only downside is it requires some PHP recoding to make use of it (but shouldn't be much if you're already using frameworks or database classes).
  • Services: seperate key systems, make them independant of each other (news feed, photos, video, ... -- allows you to disable one service, and keep the rest going)
  • CFEngine: automating sysadmin tasks (alternatives: Puppet, Chef). Ideal in "clone" environments, a cloud of servers running a similar configuration. I have my doubts on highly customized environments, where each server is configured individually to specifics needs.
  • dsh: distributed shell, run commands on any set of hosts in your network

Monitoring will be needed to keep an eye on your infrastructure:

Take a look at other Open Source contributions made by Facebook's Team!

Hi! My name is Mattias Geniar. I'm a Support Manager at Nucleus Hosting in Belgium, a general web geek & public speaker. Currently working on DNS Spy & Oh Dear!. Follow me on Twitter as @mattiasgeniar.

Share this post

Did you like this post? Will you help me share it on social media? Thanks!