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.
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!