Wednesday, 16 January 2013

On what platform Facebook is Build? What are the languages & tools used?

adsense
Have you ever thought how Facebook is build? On which platform or what are the languages used for coding it?
Well Facebook is written in a variety of  programming languages like C++, Java, Python, and Erlang.
Facebook uses LAMP stack with Memcached.
LAMP
LAMP is a stack of open source software Linux (operating system), Apache HTTP Server, MySQL (database software) and PHP (or sometimes Perl or Python).
In case of Facebook it uses Linux, Apache, MySQL and PHP.
Memcached
It is a distributed memory object caching system.
Facebook uses lot of different tools, services and languages for developer’s tool, Infrastructure, etc but we will just focus on its Infrastructure so that it does not become too big topic.
Apache Cassandra
It is a storage system for managing structured data and is designed to handle very large size of data across many servers. It’s a perfect platform for mission-critical data and highly available without compromising performance.

Apache Hive
It is a data warehouse system built on top of Hadoop that helps in easy data summarization, adhoc querying and analysis of large datasets stored in Hadoop compatible file systems.

Apache Thrift
It is a software framework for scalable cross-language services development. Thrift supports C++, PHP, Python, Perl, Java, Ruby, Erlang, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml and Delphi and other languages.
FlashCache
is a general purpose writeback block cache for Linux. It was developed as a loadable Linux kernel module, using the Device Mapper and sits below the filesystem and it allows caching of a drive on another drive. The module was originally written and released by Facebook
Open Compute Project
It is an open hardware project which accelerates the data center and efficient computing infrastructures at the lowest cost.

HipHop for PHP
It is a transformer of PHP source code into C++. It was developed by Facebook to save server resources and was released as open source in 2010. It is useful for those companies which are running very large PHP infrastructures who don’t want to rewrite complex logic within C or C++ and by doing this it helps them to reduce the number of people who are hired to do this work on the company’s entire codebase. It uses G++ to compile it to machine code.

Scribe
Scribe is a server for aggregating log data streamed in real time from a large number of servers from clients. It is designed to be scalable, reliable and extensible without client-side modification, and robust to failure of any specific machine or the network.

Tornado
It is an open source version of scalable, non-blocking web server framework written in Python. It handles thousands of connections at the same time.

No comments:

Post a Comment