Programming Languages used by Facebook:
Facebook is social networking. People have been “facebooking” each other for about 9 years now, making Facebook the most used social network with over 800 million users worldwide. But how does Facebook work?
In this article, I will discuss the programming languages used by facebook or you can say Facebook’s front-end/back-end infrastructure.
=========================================================================
The Front End
Facebook uses a variety of services, tools, and programming languages to make up its core infrastructure. At the front end, their servers run a LAMP (Linux, Apache, MySQL, and PHP) stack with Memcache. Not a computer science expert? Let’s take a look at exactly what that means.
__________________________________________________________________________________
Linux
Linux is an open source operating system kernel. It is very customizable and good for security.
__________________________________________________________________________________
Apache
MySQL
PHP
MEMCACHED
Memcached is a distributed memory object caching system. It is Free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.
========================================================================
The Back End
Facebook’s backend services are written in a variety of different programming languages including C++, Java, Python, and Erlang. Their philosophy for the creation of services is as follows:
1. Create a service if needed
2. Create a framework/toolset for easier creation of services
3. Use the right programming language for the task
A list of all of Facebook’s open source developments can be found here. Here’s the essential tools that Facebook has developed.
__________________________________________________________________________________
Apache Cassandra is a distributed storage system for managing structured data that is designed to scale to a very large size across many commodity servers, with no single point of failure.
__________________________________________________________________________________
Apache Hive is data warehouse infrastructure built on top of Hadoop that provides tools to enable easy data summarization, adhoc querying and analysis of large datasets.
__________________________________________________________________________________
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.
__________________________________________________________________________________
HipHop for PHP transforms PHP source code into highly optimized C++. HipHop offers large performance gains and was developed over the past two years.
__________________________________________________________________________________
Open Compute Project an open hardware project aims to accelerate data center and server innovation while increasing computing efficiency through collaboration on relevant best practices and technical specifications.
__________________________________________________________________________________
Scribe is a scalable service for aggregating log data streamed in real time from a large number of servers.
__________________________________________________________________________________
Thrift provides a framework for scalable cross-language services development in C++, Java, Python, PHP, and Ruby.
__________________________________________________________________________________
Tornado is a relatively simple, non-blocking web server framework written in Python. It is designed to handle thousands of simultaneous connections, making it ideal for real-time Web services.
__________________________________________________________________________________
Facebook is social networking. People have been “facebooking” each other for about 9 years now, making Facebook the most used social network with over 800 million users worldwide. But how does Facebook work?
In this article, I will discuss the programming languages used by facebook or you can say Facebook’s front-end/back-end infrastructure.
Facebook uses a variety of services, tools, and programming languages to make up its core infrastructure. At the front end, their servers run a LAMP (Linux, Apache, MySQL, and PHP) stack with Memcache. Not a computer science expert? Let’s take a look at exactly what that means.
__________________________________________________________________________________
Linux
Linux is an open source operating system kernel. It is very customizable and good for security.
__________________________________________________________________________________
Apache
Linux system runs on Apache HTTP server. It is also open source and one of the most popular web server in use today.
__________________________________________________________________________________MySQL
MySQL is the backbone of Facebook’s database infrastructure. Facebook utilizes MySQL because of its speed and reliability. It is also an open source.
__________________________________________________________________________________
PHP is an incredibly popular scripting language which makes up the majority of Facebook’s code-base. Facebook uses PHP because it is a good web programming language with extensive support and an active developer community and it is good for rapid iteration. PHP is a dynamically typed/interpreted scripting language
__________________________________________________________________________________
Memcached is a distributed memory object caching system. It is Free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.
========================================================================
The Back End
Facebook’s backend services are written in a variety of different programming languages including C++, Java, Python, and Erlang. Their philosophy for the creation of services is as follows:
1. Create a service if needed
2. Create a framework/toolset for easier creation of services
3. Use the right programming language for the task
A list of all of Facebook’s open source developments can be found here. Here’s the essential tools that Facebook has developed.
__________________________________________________________________________________
Apache Cassandra is a distributed storage system for managing structured data that is designed to scale to a very large size across many commodity servers, with no single point of failure.
__________________________________________________________________________________
Apache Hive is data warehouse infrastructure built on top of Hadoop that provides tools to enable easy data summarization, adhoc querying and analysis of large datasets.
__________________________________________________________________________________
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.
__________________________________________________________________________________
HipHop for PHP transforms PHP source code into highly optimized C++. HipHop offers large performance gains and was developed over the past two years.
__________________________________________________________________________________
Open Compute Project an open hardware project aims to accelerate data center and server innovation while increasing computing efficiency through collaboration on relevant best practices and technical specifications.
__________________________________________________________________________________
Scribe is a scalable service for aggregating log data streamed in real time from a large number of servers.
__________________________________________________________________________________
Thrift provides a framework for scalable cross-language services development in C++, Java, Python, PHP, and Ruby.
__________________________________________________________________________________
Tornado is a relatively simple, non-blocking web server framework written in Python. It is designed to handle thousands of simultaneous connections, making it ideal for real-time Web services.
__________________________________________________________________________________