Facebook is known as using LAMP as their basic platform for their website. One of the outstanding things Facebook doing very well is that they have their own strategy/architecture based on LAMP. LAMP stands for Linux + Apache + MySQL + PHP that is entirely free and open sourced software, so they can compete with their competitors in competitive operation cost with high-avail-abilities. In person, I think their strategy is pretty much innovative and its status tells their strategy is on the right direction.
One of the competitive component Facebook has is HipHop for PHP.
- PHP is a good programming language with extensive support, active developer community and rapid interaction. It is a dynamically typed language(interpreter).
- Facebook said that their HipHop is a source code transformer that converts the PHP into C++ and compiles it using g++, thus providing a high performance templating a web logic execution layer.
Facebook is also using MemCached to cache data and objects in RAM to reduce reading time. Facebook partitioned MemCached to maximize performance, so they can get their planned performances by divide and conquer.
Thrift is a lightweight remote procedure called framework for scalable cross-language services development that supports C++, PHP, Python, Pearl, Java, Ruby, Erlang, ....
Bigpipe is a kind of custom technology to accelerate page rendering using a pipelining logic.
- The general idea is to decompose web pages into small chunks called pagelets and pipeline them through several execution stages inside web servers and browsers, so eventually it helps increasing performance and speed. You can see more about Bigpie at https://www.facebook.com/notes/facebook-engineering/bigpipe-pipelining-web-pages-for-high-performance/389414033919/
Haystack is a kind of caching solution for Facebook photos posted by users that developed by Facebook which is originally designed to serve the long tail of requests seen by sharing photos in a large social network. The key feature of Haystack is to avoid disk operations when accessing meta-data.
- Haystack provides a fault-tolerant and simple solution to photo storage at dramatically less cost and higher throughput than a traditional approach using NAS appliances.