Social networking sites have changed the world. The fast and tremendous adoption of these types of services have nothing less but transformed how we communicate, find, and share information with each other. One of the largest social networks on the planet is Facebook, with approximately 2.5 billion monthly active users worldwide. To know how Facebook started, let’s take a trip down memory lane.
Facebook was founded by Mark Zuckerberg and his fellow students from Harvard University; Eduardo Saverin, Andrew McCollum, Dustin Moskovitz, and Chris Hughes. It all started with FaceMash, a website with a type of “hot or not” game for Harvard students. The site allowed users to compare photos of female students and decide which one they considered more attractive. The site was later shut down due to violating copyrights, privacy, and breaching security.
Mark Zuckerberg reiterated the FaceMash website and by February 2004, he and the other Harvard-founders called it “The Facebook”. It was made exclusively for Harvard students until it became available to other universities in the United States such as Stanford, Yale, and Columbia. The website was therefore purely focused on being an online directory that connects students to different universities.
In 2006, Facebook became available worldwide and not just on Ivy League colleges, giving everyone over thirteen years old with a valid email address an opportunity to join the social network. In the same year, Facebook also introduced the News Feed. The feed is an essential part of using Facebook, giving users an overview of content posted on the network, showing the content most relevant to you first.
The popularity of Facebook continued to climb and in the year 2007, several tech giants such as Yahoo, Microsoft, and Google tried to invest in Facebook. Only Microsoft succeeded to acquire a 1.6% share of Facebook for $240 million.
In 2010, the Hollywood film “The Social Network” created by David Fincher and Aaron Sorkin premiered, telling the story of how Facebook was created in a rather entertaining Hollywood format. The movie was a big hit and earned $225 million globally.
The following year was a game changer for Facebook, as it transformed from a social network to a network of apps that created an entire social profile of you that no other company had achieved before. Facebook showcased this in their new design for a timeline, which Zuckerberg at the time described as:
“All your stories, all your apps and a new way to express who you are.”
Through the new feature of Facebook, users can track all the memories they have shared. As shown below, the timeline that we are using today looks pretty much the same as it was built originally in the year 2011.
In the year 2012, Facebook bought the popular photo-sharing app Instagram for $1 billion. Accordingly, one of the weaknesses of Facebook during this time was easy sharing and commenting of photos, especially on mobile devices. Instagram was created for mobile users and the most downloaded application for iPhone, making it a winning piece in Facebook’s continuous efforts to build out their social network.
The development of Facebook continued, and in 2013, graph search was introduced. This lets users find information about their social media connections such as data about location, behaviors, likes, etc. In the same year, HTC and Facebook created the first smartphone with AT&T. This gives the user a unique experience, based on Facebook’s design and technology. Below is the video on how users interact using the first Facebook smartphone.
Facebook continues to dominate mobile, but in 2014 they turned their focus to messages with the acquisition of WhatsApp for $19 billion. WhatsApp is the most well-known messaging app, they had 465 million monthly active users when acquired and have 2 billion active users today, according to Statista. However, Facebook’s technological advancement didn’t stop there. Mark Zuckerberg believes that Virtual Reality is the “platform of tomorrow”, and as a result the company purchased Oculus for $2 billion. Oculus specializes in VR hardware and software products. According to Zuckerberg:
“Mobile is the platform of today, and now we’re also getting ready for the platforms of tomorrow. Oculus has the chance to create the most social platform ever, and change the way we work, play and communicate.”
In 2018, Facebook had surpassed 2 billion monthly active users and continues to grow till this day. It is an incredible achievement, from a business perspective but even more so from a technical perspective. To see how, let us unfold how Facebook technology was built.
Facebook has undergone many iterations to build their scalable social media platform that we know of today. In some ways, Facebook is still a LAMP (Linux, Apache, MySQL, PHP/Perl/Python) site, at least kind of, but it has had to change and extend its operation to incorporate a lot of other elements and services. For example:
- Facebook continues to use PHP, though it has made a compiler that transforms PHP into C++ on its servers to boost execution time.
- Facebook utilizes Linux, however, it has upgraded it to other operating systems for some parts of their platform, particularly those services dealing with system throughput.
- Facebook uses MySQL essentially as a key-esteem determined capacity, moving joins and rationale onto the web servers since enhancements are simpler to perform there on the “opposite side” of the Memcached layer. Other database technologies are also being used to power Facebook’s platform though, such as NoSQL.
Now let’s explore how Facebook delivers its users a great experience within their social networking site by using different software.
Memcached is a developer tool, used to speed up dynamic web applications. Its application program interface (API) is available for several programming languages. Memcached is a shared memory catching system. It is popularly used by different sites such as Instagram, Twitter, Slack, etc. At any point in time, Facebook operates thousands of Memcached servers with tens of terabytes of cached data.
You can watch the video below to discover more about how Facebook uses memcached on their system.
HIPHOP FOR PHP
PHP was created by Rasmus Lerdorf in 1994. It is a general-purpose scripting language, however, many developers experience issues with its speed when running natively on a server. HipHop for PHP is a source to source compiler. It was made to transform PHP into C++ code, which can enhance the performance of an application. Back then, Facebook was relying on PHP for serving content until Facebook engineers developed HipHop for better code efficiency.
Haystack is an object used for photo storage on Facebook. It has proven very useful for Facebook as approximately 1.2 million photos are uploaded per second by the users, with photos being saved in four different resolutions. Below is the process on how any picture on Facebook is downloaded from the server.
BigPipe is a dynamic web page serving system, breaking the server into multiple pieces to achieve high-quality performance. We can compare this to microservices that consist of mini services that communicate via APIs to be placed independently. Through BigPipe, Facebook users will have a better experience so when some part of the system is broken or lagging, they can still use other parts of the Facebook platform.
Cassandra is a system perfect for scalability and general availability for high efficiency applications. It is one of the successors of the NoSQL movement. Facebook uses Cassandra mainly Facebook Messenger’s inbox search. Many companies are using Cassandra such as Netflix, eBay, Reddit, and more. Below you can see how Cassandra’s architecture works.
Scribe is a system for logging data processed from many servers. It was built to manage the level of logging in of users on Facebook. However, as of 2019, Scribe is no longer used by Facebook.
HADOOP AND HIVE
Hadoop is a set of open-source libraries that enables a network to process a huge amount of data. It is used to easily process information from single servers to thousands of machines. As we all know, Facebook contains and processes an enormous amount of data, which is where Hadoop comes in. Hive started from Facebook, and it is built on top of Hadoop. Furthermore, it has various databases and files that incorporate Hadoop.
In order for the Facebook system to work together, it uses several languages for its different services. Thrift is for scalable cross-language services development. For the application to work effectively and seamlessly between different programming languages such as C++, PHP, Erlang, etc, Thrift is used so languages can work together in unison.
Varnish is an HTTP accelerator designed for content-heavy dynamic websites, it is also cache content that can be provided very quickly. Varnish’s purpose is to serve photos and profile pictures in Facebook, this system supports the website to manage the amount of requests everyday.
There is no doubt that Facebook is the leading social networking site in the world, especially the Western world. It’s monthly active users have been growing rapidly since Mark Zuckerberg and his team started their social networking site in 2004. The number of features and ever-increasing demands for better user experience, has led Facebook to an infrastructure and technical backbone that is somewhat complicated, counting multiple frameworks and programming languages, but then again, this can be expected for such a large and complex platform like Facebook.
If you are planning to build an app or website, and you need expert guidance. Here in Wiredelta, we are happy to help you. Stay tuned for the development of technological trends, and how Software is Feeding the World.