SlideShare uma empresa Scribd logo
1 de 29
The Technology
Behind Facebook
Revealed
Presented by:
Prakhar Gethe
( CEO and Co-founder Team Zenith)
Why Facebook Is Giant
 Facebook is the “social networking”.
 People have been “facebooking” each other for about 7 years now,
making Facebook the most used social network with over 500 million
users worldwide.
 50% of our active users log on to Facebook in any given day
 Average user has 130 friends
 People spend over 700 billion minutes per month on Facebook
 There are over 900 million objects that people interact with (pages,
groups, events and community pages)
 Average user is connected to 80 community pages, groups and events
 Average user creates 90 pieces of content each month
 More than 30 billion pieces of content (web links, news stories, blog
posts, notes, photo albums, etc.) shared each month.
Here are a few factoids to give you an idea of the scaling challenge that
Facebook has to deal with:
 Facebook serves 570 billion page views per month (according to Google Ad
Planner).
 There are more photos on Facebook than all other photo sites combined
(including sites like Flickr).
 More than 3 billion photos are uploaded every month.
 Facebook’s systems serve 1.2 million photos per second. This doesn’t
include the images served by Facebook’s CDN.
 More than 25 billion pieces of content (status updates, comments, etc) are
shared every month.
 Facebook has more than 30,000 servers (and this number is from last year!)
Scaling Challenge Of Facebook
Software That Helps Facebook Scale
In some ways Facebook is still a LAMP site (kind of), but it has had to change and extend its
operation to incorporate a lot of other elements and services, and modify the approach to
existing ones.
For example:
 Facebook still uses PHP, but it has built a compiler for it so it can be turned into native
code on its web servers, thus boosting performance.
 Facebook uses Linux, but has optimized it for its own purposes (especially in terms of
network throughput).
 Facebook uses MySQL, but primarily as a key-value persistent storage, moving joins and
logic onto the web servers since optimizations are easier to perform there (on the
“other side” of the Memcached layer).
 Then there are the custom-written systems, like Haystack, a highly scalable object store
used to serve Facebook’s immense amount of photos, or Scribe, a logging system that
can operate at the scale of Facebook (which is far from trivial).
 But enough of that. Let’s present (some of) the software that Facebook uses to provide
us all with the world’s largest social network site.
For back end
 PHP
 C++
 Java
 Python
 FBML( developed at Facebook)
 Erlang
 Xhp( developed at Facebook)
Technology Used By Facebook
Database
 mysql-5.6
 Memcached
 Haystack
 Cassandra
 Scribe
 Preasto
For front –end
 Ajax
 JSON
 Javascript
 Jquery
For Back-end
• PHP
PHP is a server-side scripting language designed for web development but also used as a general-purpose
programming language.
It stands for PHP: Hypertext Preprocessor
• C++
C++ is a programming language that is general purpose, statically typed, free-form,
multi-paradigm and compiled.
• Java
Java is a computer programming language that is concurrent, class-based, object-oriented, and specifically
designed to have as few implementation dependencies as possible. It is intended to let application developers
"write once, run anywhere" (WORA), meaning that code that runs on one platform does not need to be
recompiled to run on another.
• Python
Python is an interpreted, object-oriented, high-level programming language
with dynamic semantics. Its high-level built in data structures, combined
with dynamic typing and dynamic binding, make it very attractive for Rapid Application Development, as well
as for use as a scripting or glue language to connect existing components together.
 FBML
FBML is a software environment provided by the social
networking service Facebook for third-party developers
to create their own applications and services that access
data in Facebook
 Erlang
Erlang is a general-purpose concurrent, garbage-collected
Programming language and runtime system. It was designed
by Ericsson to support distributed, fault-tolerant, soft-real-time,
non-stop applications. It supports hot swapping, so that code
can be changed without stopping a system.
 Xhp
XHP is an augmentation of PHP developed at Facebook to allow XML syntax for the
purpose of creating custom and reusable HTML elements.
For Front-end
 Ajax
Ajax (an acronym for Asynchronous JavaScript and XML)[1] is a group
of interrelated web development techniques used on the client-side
to create asynchronous web applications. With Ajax, web applications
can send data to, and retrieve data from, a server asynchronously (in
the background) without interfering with the display and behavior of
the existing page. Data can be retrieved using the XMLHttpRequest
object. Despite the name, the use of XML is not required (JSON is
often used instead.), and the requests do not need to be
asynchronous.
 JavaScript
JavaScript (JS) is an interpreted computer programming language.As
part of web browsers, implementations allow client-side scripts to
interact with the user, control the browser, communicate
asynchronously, and alter the document content that is displayed It
has also become common in server-side programming, game
development and the creation of desktop applications.
 jQuery
jQuery is a multi-browser (cf. cross-browser) JavaScript library
designed to simplify the client-side scripting of HTML. It was released
in January 2006 at BarCamp NYC by John Resig. It is currently
developed by a team of developers led by Dave Methvin. Used by
over 65% of the 10,000 most visited websites, jQuery is the most
popular JavaScript library in use today
 JSON
JSON or JavaScript Object Notation, is an open standard format
that uses human-readable text to transmit data objects
consisting of attribute–value pairs. It is used primarily to transmit
data between a server and web application, as an alternative to
XML.
 XML
Extensible Markup Language (XML) is a markup language that defines
a set of rules for encoding documents in a format that is both human-
readable and machine-readable. It is defined in the XML 1.0
Specification[3] produced by the W3C, and several other related
specifications,[4] all free open standards.[5]
Database Technologies
 mysql-5.6
MySQL is (as of July 2013) the world's second most widely used open-source
relational database management system (RDBMS).It is named after co-founder
Michael Widenius's daughter, My.The SQL phrase stands for Structured Query
Language.
 Memcached
Memcached is by now one of the most famous pieces of software on the internet. It’s a
distributed memory caching system which Facebook (and a ton of other sites) use as a
caching layer between the web servers and MySQL servers (since database access is
relatively slow). Through the years, Facebook has made a ton of optimizations to
Memcached and the surrounding software (like optimizing the network stack).Facebook runs
thousands of Memcached servers with tens of terabytes of cached data at any one point in time.
It is likely the world’s largest Memcached installation.
 Haystack
Haystack is Facebook’s high-performance photo storage/retrieval system (strictly speaking,
Haystack is an object store, so it doesn’t necessarily have to store photos). It has a ton of work to
do. There are more than 20 billion uploaded photos on Facebook, and each one is saved in four
different resolutions, resulting in more than 80 billion photos.
And it’s not just about being able to handle billions of photos, performance is critical. As we
mentioned previously, Facebook serves around 1.2 million photos per second, a number which
doesn’t include images served by Facebook’s CDN. That’s a staggering number.
 Cassandra
Cassandra is a distributed storage system with no single point of failure. It’s one
of the poster children for the NoSQL movement and has been made open source
(it’s even become an Apache project). Facebook uses it for its Inbox search.
Other than Facebook, a number of other services use it, for example Digg..
 Scribe
Scribe is a flexible logging system that Facebook uses for a multitude of purposes
internally. It’s been built to be able to handle logging at the scale of Facebook,
and automatically handles new logging categories as they show up (Facebook has
hundreds).
 Preasto
Presto is an open source distributed SQL query engine for running interactive
analytic queries against data sources of all sizes ranging from gigabytes to
petabytes.
Presto was designed and written from the ground up for interactive analytics and
approaches the speed of commercial data warehouses while scaling to the size of
organizations like Facebook.
Hive
Apache Hive is a data warehouse
infrastructure built on top of Hadoop
for providing data summarization,
query, and analysis.
Hadoop Distributed File System (HDFS)
To understand how it’s possible to scale a Hadoop®
cluster to hundreds (and even thousands) of nodes,
you have to start with the Hadoop Distributed File
System (HDFS). Data in a Hadoop cluster is broken
down into smaller pieces (called blocks) and
distributed throughout the cluster. In this way, the
map and reduce functions can be executed on
smaller subsets of your larger data sets, and this
provides the scalability that is needed for big data
processing
Other Application
 BigPipe
BigPipe is a dynamic web page serving system that Facebook has developed.
Facebook uses it to serve each web page in sections (called “pagelets”) for
optimal performance.
For example, the chat window is retrieved separately, the news feed is retrieved
separately, and so on. These pagelets can be retrieved in parallel, which is where
the performance gain comes in, and it also gives users a site that works even if
some part of it would be deactivated or broken
 Hadoop and Hive
HadoopHadoop is an open source map-reduce implementation that makes it
possible to perform calculations on massive amounts of data. Facebook uses this
for data analysis (and as we all know, Facebook has massive amounts of data). Hive
originated from within Facebook, and makes it possible to use SQL queries against
Hadoop, making it easier for non-programmers to use.
Both Hadoop and Hive are open source (Apache projects) and are used by a
number of big services, for example Yahoo and Twitter.
 Thrift
Facebook uses several different languages for its different services. PHP is used for the
front-end, Erlang is used for Chat, Java and C++ are also used in several places (and perhaps
other languages as well). Thrift is an internally developed cross-language framework that
ties all of these different languages together, making it possible for them to talk to each
other. This has made it much easier for Facebook to keep up its cross-language
development.
Facebook has made Thrift open source and support for even more languages has been
added
 Varnish
Varnish is an HTTP accelerator which can act as a load balancer and
also cache content which can then be served lightning-fast.
Facebook uses Varnish to serve photos and profile pictures,
billions of requests every day. Like almost everything Facebook uses, Varnish is
open source.
 For Chat
Epoll Server using Erlang
Accessed using thrift
 Message Search
Inverted index stored in HBase
 epoll
epoll - I/O event notification facility
The Epoll event mechanism is designed to scale to larger numbers of
connections than select and poll.
HBase
HBase is an open source, non-relational, distributed database
modeled after Google's BigTable and is written in Java.
The Graph API
 The Graph API presents a simple, consistent view of the Facebook
social graph, uniformly representing objects in the graph
(e.g.,people, photos, events, and pages) and the connections
between them (e.g., friend relationships, shared content, and photo
tags).
 Restful API for accessing data on the Facebook graph.
 Oauth 2.0 based authentication.
 JSON Modeling of objects and connections.
 Every object in the social graph has a unique ID. You can access the
properties of an object by requesting -
https://graph.facebook.com/ID
 Alternatively, people and pages with usernames can be accessed
using their username as an ID. All responses are JSON objects.
 Specifications - http://developers.facebook.com/docs/api
Facebook Markup Language
 FBML is a variant-evolved subset of HTML with some elements
removed.
 It allows Facebook Application developers to customize the "look
and feel" of their applications, to a limited extent.
 It is the specification of how to encode content so that
Facebook's servers can read and publish it.
 FBML plays an important role in building applications. FBML is used
to tap in to various Facebook elements when building applications.
 It operates a lot like HTML and it gives the ability to do various tasks
with ease such as:
 ending a user e-mail
 creating a two column form
 embedding flash video
 creating a dashboard
 posting on a wall
 displaying a header…etc
Facebook’s New Messages
• The new Messages interweaves your chats, texts
and emails. It’s a central place to control all of
your private communication, both on and off
Facebook.
• Simply put, it can be a single inbox for all of your
messages, no matter how you choose to send
them.
• A facebook.com Email Address
• SMS From Facebook
• Chat History
Open Source Software For mobile
 Xctool
xctool is a replacement for Apple's xcodebuild that makes it easier to build
and test iOS and Mac products. It's especially helpful for continuous
integration
 Rebound
Rebound is a Java library that models spring dynamics. Rebound spring
models can be used to create animations that feel natural by introducing
real world physics to your application.
 Buck
Buck is a build system for Android that encourages the creation of small, reusable
modules consisting of code and resources. Because Android applications are
predominantly written in Java, Buck also functions as a Java build system.
 rng.io
Powers the Ringmark testing framework at rng.io, as donated to the W3C
Coremob Community Group.
 Facebook SDK for iOS
Use the Facebook SDK for iOS to integrate with Facebook, help build
engaging social apps, and get more installs.
 facebook-android-sdk
Use the Facebook SDK for Android to integrate with Facebook, help build
engaging social apps, and get more installs
 Fishhook
fishhook is a very simple library that enables dynamically rebinding
symbols in Mach-O binaries running on iOS in the simulator and on
devices.
Open Source Software For Web
 React
React is a JavaScript library for building user interfaces.
React uses a declarative paradigm that makes it easier to reason about your
application. It's efficient: React computes the minimal set of changes necessary to keep your
DOM up-to-date. And it's flexible: React works with the libraries and frameworks that you
already know.
 Hhvm
HipHop VM (HHVM) is an open-source virtual machine designed for executing
programs written in PHP. HHVM uses a just-in-time compilation approach to achieve
superior performance while maintaining the flexibility that PHP developers are accustomed to.
HipHop VM (and before it HPHPc) has realized more than a 5x increase in throughput for
Facebook compared with Zend PHP 5.2.
 Huxley
Huxley is a test-like system for catching visual regressions in Web applications.
It watches you browse, takes screenshots, and tells you when they change
 Regenerator
Regenerator is a source transformer enabling ECMAScript 6 generator functions
(yield) in JavaScript-of-today (ES5). The generator syntax provides a much
cleaner alternative to using callbacks when writing asynchronous server-side
code.
 facebook-php-sdk
Use the Facebook SDK for PHP to integrate with Facebook, help build engaging social
apps, and get more users.
Some other tools are
 node-haste
 jstransform
 rng.io
 rebound
 Tornado
Tornado is a Python web framework and asynchronous networking library,
originally developed at FriendFeed. By using non-blocking network I/O, Tornado
can scale to tens of thousands of open connections, making it ideal for long polling,
WebSockets, and other applications that require a long-lived connection to each user.
Open Source Software For Data
 Presto
Presto is an open source distributed SQL query engine for running interactive
analytic queries against data sources of all sizes ranging from gigabytes to
petabytes.
 mysql-5.6
Facebook's branch of the Oracle MySQL v5.6 database
 Scribe
Scribe is a server for aggregating streaming log data. It is designed to scale to a very large
number of nodes and be robust to network and node failures.
There is a scribe server running on every node in the system, configured to aggregate
messages and send them to a central scribe server (or servers) in larger groups. If the
central scribe server isn’t available the local scribe server writes the messages to a file on
local disk and sends them when the central server recovers. The central scribe server(s) can
write the messages to the files that are their final destination, typically on an nfs filer or a
distributed filesystem, or send them to another layer of scribe servers
Open Source Software For Infra
 Rocksdb
RocksDB is an embeddable persistent key-value store for fast storage. RocksDB
can also be the foundation for a client-server database but our current focus is
on embedded workloads.
 Opencompute
The Open Compute Project Foundation is a rapidly growing community of
engineers around the world whose mission is to design and enable the delivery
of the most efficient server, storage and data center hardware designs for
scalable computing
 Pfff
pfff is mainly an OCaml API to write static analysis, dynamic analysis, code visualizations, code
navigations, or style-preserving source-to-source transformations such as refactorings on source
code
 Swift
Swift is an easy-to-use, annotation-based Java library for creating Thrift serializable
types and services.
 Folly
Folly is an open-source C++ library developed and used at Facebook. It is a
library of C++11 components designed with practicality and efficiency in
mind. It complements (as opposed to competing against) offerings such as
Boost and of course std. In fact, we embark on defining our own
component only when something we need is either not available, or does
not meet the needed performance profile.
 Flashcache
FlashCache is a general purpose writeback block cache for Linux.
Some other relevant tools:
 tornado
 pyaib
 watchman
 hhvm
Gradual releases and dark launches
 Facebook has a system, Gatekeeper that lets run
different code for different sets of users.
 This lets Facebook do gradual releases of new
features, activate certain features only for Facebook
employees, etc.
 Gatekeeper also lets Facebook do something called
“dark launches”, which is to activate elements of a
certain feature behind the scenes before it goes live.
 Facebook has also widgetized large portions of their
application, meaning that widgets can be written in an
appropriate language instead of simply using PHP.
These widgets interface with the other parts of the
application through the use of internal APIs.
 Like many other big sites, Facebook uses a Content
delivery network (CDN) to help serve static content.
 And then of course there is the huge data center
Facebook is building in Oregon to help it scale out with
even more servers.
Shocking facts about Facebook
A third of all divorce filings in 2011 contained
the word "Facebook”
Iceland used Facebook to rewrite its
constitution!
Adding the number 4 to the end of Facebook’s
URL will automatically direct you to Mark
Zuckerberg’s wall.
Facebook pays $500 to anyone who can hack
into it!.
A couple got murdered because they de-
friended someone on Facebook
A man was ordered to apologize on Facebook
or Go to Jail Read more at
www.omg-facts.com
How facebook works and function- a complete approach

Mais conteúdo relacionado

Destaque

Dataiku pig - hive - cascading
Dataiku   pig - hive - cascadingDataiku   pig - hive - cascading
Dataiku pig - hive - cascadingDataiku
 
Risk, Resilience & Accountability: Managing Cultural Property
Risk, Resilience & Accountability: Managing Cultural PropertyRisk, Resilience & Accountability: Managing Cultural Property
Risk, Resilience & Accountability: Managing Cultural PropertyCollections Trust
 
FCUK Current marketing report
FCUK Current marketing report FCUK Current marketing report
FCUK Current marketing report Irina Lazova
 
Formation Of Romantic Relationships
Formation Of Romantic RelationshipsFormation Of Romantic Relationships
Formation Of Romantic RelationshipsCatherine Riley
 
Curved Mirrors
Curved MirrorsCurved Mirrors
Curved MirrorsOhMiss
 
Adidas Marketing Audit
Adidas Marketing AuditAdidas Marketing Audit
Adidas Marketing AuditJessica Jones
 
Marketing Plan for Nest Thermostats
Marketing Plan for Nest ThermostatsMarketing Plan for Nest Thermostats
Marketing Plan for Nest ThermostatsJonathan Andrews
 
Cells and cell specialization
Cells and cell specializationCells and cell specialization
Cells and cell specializationSophia Butler
 
The history of Tourism
The history of TourismThe history of Tourism
The history of TourismClarice Kangut
 
How to Write Sketch Comedy
How to Write Sketch ComedyHow to Write Sketch Comedy
How to Write Sketch ComedyScott Rogers
 
Theories of stress
Theories of stressTheories of stress
Theories of stressIAU Dent
 
Sociology crime and deviance
Sociology crime and devianceSociology crime and deviance
Sociology crime and deviancejimmctavish
 
Proposal format
Proposal formatProposal format
Proposal formatMr SMAK
 
3.2.1 Models of Health
3.2.1 Models of Health3.2.1 Models of Health
3.2.1 Models of Healthjkonoroth
 
Introduction to Web Architecture
Introduction to Web ArchitectureIntroduction to Web Architecture
Introduction to Web ArchitectureChamnap Chhorn
 
Workplace Accountability: How Effective Managers Create a Culture of Ownership
Workplace Accountability: How Effective Managers Create a Culture of OwnershipWorkplace Accountability: How Effective Managers Create a Culture of Ownership
Workplace Accountability: How Effective Managers Create a Culture of OwnershipThe Business LockerRoom
 

Destaque (17)

Facebook thrift
Facebook thriftFacebook thrift
Facebook thrift
 
Dataiku pig - hive - cascading
Dataiku   pig - hive - cascadingDataiku   pig - hive - cascading
Dataiku pig - hive - cascading
 
Risk, Resilience & Accountability: Managing Cultural Property
Risk, Resilience & Accountability: Managing Cultural PropertyRisk, Resilience & Accountability: Managing Cultural Property
Risk, Resilience & Accountability: Managing Cultural Property
 
FCUK Current marketing report
FCUK Current marketing report FCUK Current marketing report
FCUK Current marketing report
 
Formation Of Romantic Relationships
Formation Of Romantic RelationshipsFormation Of Romantic Relationships
Formation Of Romantic Relationships
 
Curved Mirrors
Curved MirrorsCurved Mirrors
Curved Mirrors
 
Adidas Marketing Audit
Adidas Marketing AuditAdidas Marketing Audit
Adidas Marketing Audit
 
Marketing Plan for Nest Thermostats
Marketing Plan for Nest ThermostatsMarketing Plan for Nest Thermostats
Marketing Plan for Nest Thermostats
 
Cells and cell specialization
Cells and cell specializationCells and cell specialization
Cells and cell specialization
 
The history of Tourism
The history of TourismThe history of Tourism
The history of Tourism
 
How to Write Sketch Comedy
How to Write Sketch ComedyHow to Write Sketch Comedy
How to Write Sketch Comedy
 
Theories of stress
Theories of stressTheories of stress
Theories of stress
 
Sociology crime and deviance
Sociology crime and devianceSociology crime and deviance
Sociology crime and deviance
 
Proposal format
Proposal formatProposal format
Proposal format
 
3.2.1 Models of Health
3.2.1 Models of Health3.2.1 Models of Health
3.2.1 Models of Health
 
Introduction to Web Architecture
Introduction to Web ArchitectureIntroduction to Web Architecture
Introduction to Web Architecture
 
Workplace Accountability: How Effective Managers Create a Culture of Ownership
Workplace Accountability: How Effective Managers Create a Culture of OwnershipWorkplace Accountability: How Effective Managers Create a Culture of Ownership
Workplace Accountability: How Effective Managers Create a Culture of Ownership
 

Semelhante a How facebook works and function- a complete approach

facebookthrift-151001153400-lva1-app6891.pptx
facebookthrift-151001153400-lva1-app6891.pptxfacebookthrift-151001153400-lva1-app6891.pptx
facebookthrift-151001153400-lva1-app6891.pptxPrasannaKumarpanda2
 
Facebook Technology Stack
Facebook Technology StackFacebook Technology Stack
Facebook Technology StackHusain Ali
 
Facebook[The Nuts and Bolts Technology]
Facebook[The Nuts and Bolts Technology]Facebook[The Nuts and Bolts Technology]
Facebook[The Nuts and Bolts Technology]Koushik Reddy
 
Presention on Facebook in f Distributed systems
Presention on Facebook in f Distributed systemsPresention on Facebook in f Distributed systems
Presention on Facebook in f Distributed systemsAhmad Yar
 
Online Fitness Gym Documentation
Online Fitness Gym Documentation Online Fitness Gym Documentation
Online Fitness Gym Documentation Abhishek Patel
 
The Recent Pronouncement Of The World Wide Web (Www) Had
The Recent Pronouncement Of The World Wide Web (Www) HadThe Recent Pronouncement Of The World Wide Web (Www) Had
The Recent Pronouncement Of The World Wide Web (Www) HadDeborah Gastineau
 
TECHNOLOGIES BEHIND THE FACEBOOK.pptx
TECHNOLOGIES BEHIND THE FACEBOOK.pptxTECHNOLOGIES BEHIND THE FACEBOOK.pptx
TECHNOLOGIES BEHIND THE FACEBOOK.pptxBoyaKalyan1
 
Unit 5 World_Wide_Web.pptx
Unit 5 World_Wide_Web.pptxUnit 5 World_Wide_Web.pptx
Unit 5 World_Wide_Web.pptxDhruvPatel189174
 
Tell Me Quality Documentation
Tell Me Quality DocumentationTell Me Quality Documentation
Tell Me Quality DocumentationMarco Berlot
 
Hadoop Big Data A big picture
Hadoop Big Data A big pictureHadoop Big Data A big picture
Hadoop Big Data A big pictureJ S Jodha
 
CONTENT MANAGEMENT SYSTEM
CONTENT MANAGEMENT SYSTEMCONTENT MANAGEMENT SYSTEM
CONTENT MANAGEMENT SYSTEMANAND PRAKASH
 
TECHNOLOGY FOR BACK-END WEB DEVELOPMENT: SERVER-SIDE SCRIPTING
TECHNOLOGY FOR BACK-END WEB DEVELOPMENT: SERVER-SIDE SCRIPTING TECHNOLOGY FOR BACK-END WEB DEVELOPMENT: SERVER-SIDE SCRIPTING
TECHNOLOGY FOR BACK-END WEB DEVELOPMENT: SERVER-SIDE SCRIPTING PamRobert
 
Behind the scenes Web & App
Behind the scenes Web & AppBehind the scenes Web & App
Behind the scenes Web & Appsanketest7
 
Full Stack Web Development
Full Stack Web DevelopmentFull Stack Web Development
Full Stack Web DevelopmentSWAGATHCHOWDARY1
 
Facebook Hadoop Usecase
Facebook Hadoop UsecaseFacebook Hadoop Usecase
Facebook Hadoop Usecasepuneet2k5
 

Semelhante a How facebook works and function- a complete approach (20)

facebookthrift-151001153400-lva1-app6891.pptx
facebookthrift-151001153400-lva1-app6891.pptxfacebookthrift-151001153400-lva1-app6891.pptx
facebookthrift-151001153400-lva1-app6891.pptx
 
Facebook Technology Stack
Facebook Technology StackFacebook Technology Stack
Facebook Technology Stack
 
Facebook[The Nuts and Bolts Technology]
Facebook[The Nuts and Bolts Technology]Facebook[The Nuts and Bolts Technology]
Facebook[The Nuts and Bolts Technology]
 
Presention on Facebook in f Distributed systems
Presention on Facebook in f Distributed systemsPresention on Facebook in f Distributed systems
Presention on Facebook in f Distributed systems
 
Online Fitness Gym Documentation
Online Fitness Gym Documentation Online Fitness Gym Documentation
Online Fitness Gym Documentation
 
The Recent Pronouncement Of The World Wide Web (Www) Had
The Recent Pronouncement Of The World Wide Web (Www) HadThe Recent Pronouncement Of The World Wide Web (Www) Had
The Recent Pronouncement Of The World Wide Web (Www) Had
 
Php
PhpPhp
Php
 
TECHNOLOGIES BEHIND THE FACEBOOK.pptx
TECHNOLOGIES BEHIND THE FACEBOOK.pptxTECHNOLOGIES BEHIND THE FACEBOOK.pptx
TECHNOLOGIES BEHIND THE FACEBOOK.pptx
 
Unit 5 World_Wide_Web.pptx
Unit 5 World_Wide_Web.pptxUnit 5 World_Wide_Web.pptx
Unit 5 World_Wide_Web.pptx
 
Tell Me Quality Documentation
Tell Me Quality DocumentationTell Me Quality Documentation
Tell Me Quality Documentation
 
Hadoop Big Data A big picture
Hadoop Big Data A big pictureHadoop Big Data A big picture
Hadoop Big Data A big picture
 
Api
ApiApi
Api
 
CONTENT MANAGEMENT SYSTEM
CONTENT MANAGEMENT SYSTEMCONTENT MANAGEMENT SYSTEM
CONTENT MANAGEMENT SYSTEM
 
TECHNOLOGY FOR BACK-END WEB DEVELOPMENT: SERVER-SIDE SCRIPTING
TECHNOLOGY FOR BACK-END WEB DEVELOPMENT: SERVER-SIDE SCRIPTING TECHNOLOGY FOR BACK-END WEB DEVELOPMENT: SERVER-SIDE SCRIPTING
TECHNOLOGY FOR BACK-END WEB DEVELOPMENT: SERVER-SIDE SCRIPTING
 
Behind the scenes Web & App
Behind the scenes Web & AppBehind the scenes Web & App
Behind the scenes Web & App
 
Full Stack Web Development
Full Stack Web DevelopmentFull Stack Web Development
Full Stack Web Development
 
Fb mechanism
Fb mechanismFb mechanism
Fb mechanism
 
Facebook Hadoop Usecase
Facebook Hadoop UsecaseFacebook Hadoop Usecase
Facebook Hadoop Usecase
 
CouchDB
CouchDBCouchDB
CouchDB
 
Presentation on SEO, .htaccess, Open-source, Ontology, Semantic web, etc.
Presentation on SEO, .htaccess, Open-source, Ontology, Semantic web, etc.Presentation on SEO, .htaccess, Open-source, Ontology, Semantic web, etc.
Presentation on SEO, .htaccess, Open-source, Ontology, Semantic web, etc.
 

Último

fraud storyboards powerpoint media project
fraud storyboards powerpoint media projectfraud storyboards powerpoint media project
fraud storyboards powerpoint media project17mos052
 
VIP Moti Bagh Call Girls Free Doorstep Delivery 9873777170
VIP Moti Bagh Call Girls Free Doorstep Delivery 9873777170VIP Moti Bagh Call Girls Free Doorstep Delivery 9873777170
VIP Moti Bagh Call Girls Free Doorstep Delivery 9873777170Komal Khan
 
Upgrade Your Twitter Presence with Socio Cosmos
Upgrade Your Twitter Presence with Socio CosmosUpgrade Your Twitter Presence with Socio Cosmos
Upgrade Your Twitter Presence with Socio CosmosSocioCosmos
 
Impact Of Educational Resources on Students' Academic Performance in Economic...
Impact Of Educational Resources on Students' Academic Performance in Economic...Impact Of Educational Resources on Students' Academic Performance in Economic...
Impact Of Educational Resources on Students' Academic Performance in Economic...AJHSSR Journal
 
When-technology-and-Humanity-Cross-1.pptx
When-technology-and-Humanity-Cross-1.pptxWhen-technology-and-Humanity-Cross-1.pptx
When-technology-and-Humanity-Cross-1.pptxReaper61
 
O9654467111 Call Girls In Shahdara Women Seeking Men
O9654467111 Call Girls In Shahdara Women Seeking MenO9654467111 Call Girls In Shahdara Women Seeking Men
O9654467111 Call Girls In Shahdara Women Seeking MenSapana Sha
 
"Ready to elevate your Instagram? Let's go
"Ready to elevate your Instagram? Let's go"Ready to elevate your Instagram? Let's go
"Ready to elevate your Instagram? Let's goSocioCosmos
 
Independent Escorts Lucknow 8923113531 WhatsApp luxurious locale in your city...
Independent Escorts Lucknow 8923113531 WhatsApp luxurious locale in your city...Independent Escorts Lucknow 8923113531 WhatsApp luxurious locale in your city...
Independent Escorts Lucknow 8923113531 WhatsApp luxurious locale in your city...makika9823
 
AI Virtual Influencers: The Future of Influencer Marketing
AI Virtual Influencers:  The Future of Influencer MarketingAI Virtual Influencers:  The Future of Influencer Marketing
AI Virtual Influencers: The Future of Influencer MarketingCut-the-SaaS
 
Add more information to your upload Tip: Better titles and descriptions lead ...
Add more information to your upload Tip: Better titles and descriptions lead ...Add more information to your upload Tip: Better titles and descriptions lead ...
Add more information to your upload Tip: Better titles and descriptions lead ...SejarahLokal
 
Call Girls In Dwarka ⏩7838079806 ⏩Escort Service In Patel Nagar Delhi
Call Girls In Dwarka ⏩7838079806 ⏩Escort Service In Patel Nagar DelhiCall Girls In Dwarka ⏩7838079806 ⏩Escort Service In Patel Nagar Delhi
Call Girls In Dwarka ⏩7838079806 ⏩Escort Service In Patel Nagar Delhidelhiescort
 
Dubai Call Girls O528786472 Diabolic Call Girls In Dubai
Dubai Call Girls O528786472 Diabolic Call Girls In DubaiDubai Call Girls O528786472 Diabolic Call Girls In Dubai
Dubai Call Girls O528786472 Diabolic Call Girls In Dubaihf8803863
 
Unlock Your Social Media Potential with IndianLikes - IndianLikes.com
Unlock Your Social Media Potential with IndianLikes - IndianLikes.comUnlock Your Social Media Potential with IndianLikes - IndianLikes.com
Unlock Your Social Media Potential with IndianLikes - IndianLikes.comSagar Sinha
 
办理伯明翰大学毕业证书文凭学位证书
办理伯明翰大学毕业证书文凭学位证书办理伯明翰大学毕业证书文凭学位证书
办理伯明翰大学毕业证书文凭学位证书saphesg8
 
定制(ENU毕业证书)英国爱丁堡龙比亚大学毕业证成绩单原版一比一
定制(ENU毕业证书)英国爱丁堡龙比亚大学毕业证成绩单原版一比一定制(ENU毕业证书)英国爱丁堡龙比亚大学毕业证成绩单原版一比一
定制(ENU毕业证书)英国爱丁堡龙比亚大学毕业证成绩单原版一比一ra6e69ou
 
Mastering Wealth with YouTube Content Marketing.pdf
Mastering Wealth with YouTube Content Marketing.pdfMastering Wealth with YouTube Content Marketing.pdf
Mastering Wealth with YouTube Content Marketing.pdfTirupati Social Media
 
Top Astrologer, Kala ilam specialist in USA and Bangali Amil baba in Saudi Ar...
Top Astrologer, Kala ilam specialist in USA and Bangali Amil baba in Saudi Ar...Top Astrologer, Kala ilam specialist in USA and Bangali Amil baba in Saudi Ar...
Top Astrologer, Kala ilam specialist in USA and Bangali Amil baba in Saudi Ar...baharayali
 

Último (20)

fraud storyboards powerpoint media project
fraud storyboards powerpoint media projectfraud storyboards powerpoint media project
fraud storyboards powerpoint media project
 
Enjoy ➥8448380779▻ Call Girls In Noida Sector 93 Escorts Delhi NCR
Enjoy ➥8448380779▻ Call Girls In Noida Sector 93 Escorts Delhi NCREnjoy ➥8448380779▻ Call Girls In Noida Sector 93 Escorts Delhi NCR
Enjoy ➥8448380779▻ Call Girls In Noida Sector 93 Escorts Delhi NCR
 
VIP Moti Bagh Call Girls Free Doorstep Delivery 9873777170
VIP Moti Bagh Call Girls Free Doorstep Delivery 9873777170VIP Moti Bagh Call Girls Free Doorstep Delivery 9873777170
VIP Moti Bagh Call Girls Free Doorstep Delivery 9873777170
 
Upgrade Your Twitter Presence with Socio Cosmos
Upgrade Your Twitter Presence with Socio CosmosUpgrade Your Twitter Presence with Socio Cosmos
Upgrade Your Twitter Presence with Socio Cosmos
 
Impact Of Educational Resources on Students' Academic Performance in Economic...
Impact Of Educational Resources on Students' Academic Performance in Economic...Impact Of Educational Resources on Students' Academic Performance in Economic...
Impact Of Educational Resources on Students' Academic Performance in Economic...
 
When-technology-and-Humanity-Cross-1.pptx
When-technology-and-Humanity-Cross-1.pptxWhen-technology-and-Humanity-Cross-1.pptx
When-technology-and-Humanity-Cross-1.pptx
 
young Call girls in Dwarka sector 23🔝 9953056974 🔝 Delhi escort Service
young Call girls in Dwarka sector 23🔝 9953056974 🔝 Delhi escort Serviceyoung Call girls in Dwarka sector 23🔝 9953056974 🔝 Delhi escort Service
young Call girls in Dwarka sector 23🔝 9953056974 🔝 Delhi escort Service
 
O9654467111 Call Girls In Shahdara Women Seeking Men
O9654467111 Call Girls In Shahdara Women Seeking MenO9654467111 Call Girls In Shahdara Women Seeking Men
O9654467111 Call Girls In Shahdara Women Seeking Men
 
"Ready to elevate your Instagram? Let's go
"Ready to elevate your Instagram? Let's go"Ready to elevate your Instagram? Let's go
"Ready to elevate your Instagram? Let's go
 
looking for escort 9953056974 Low Rate Call Girls In Vinod Nagar
looking for escort 9953056974 Low Rate Call Girls In  Vinod Nagarlooking for escort 9953056974 Low Rate Call Girls In  Vinod Nagar
looking for escort 9953056974 Low Rate Call Girls In Vinod Nagar
 
Independent Escorts Lucknow 8923113531 WhatsApp luxurious locale in your city...
Independent Escorts Lucknow 8923113531 WhatsApp luxurious locale in your city...Independent Escorts Lucknow 8923113531 WhatsApp luxurious locale in your city...
Independent Escorts Lucknow 8923113531 WhatsApp luxurious locale in your city...
 
AI Virtual Influencers: The Future of Influencer Marketing
AI Virtual Influencers:  The Future of Influencer MarketingAI Virtual Influencers:  The Future of Influencer Marketing
AI Virtual Influencers: The Future of Influencer Marketing
 
Add more information to your upload Tip: Better titles and descriptions lead ...
Add more information to your upload Tip: Better titles and descriptions lead ...Add more information to your upload Tip: Better titles and descriptions lead ...
Add more information to your upload Tip: Better titles and descriptions lead ...
 
Call Girls In Dwarka ⏩7838079806 ⏩Escort Service In Patel Nagar Delhi
Call Girls In Dwarka ⏩7838079806 ⏩Escort Service In Patel Nagar DelhiCall Girls In Dwarka ⏩7838079806 ⏩Escort Service In Patel Nagar Delhi
Call Girls In Dwarka ⏩7838079806 ⏩Escort Service In Patel Nagar Delhi
 
Dubai Call Girls O528786472 Diabolic Call Girls In Dubai
Dubai Call Girls O528786472 Diabolic Call Girls In DubaiDubai Call Girls O528786472 Diabolic Call Girls In Dubai
Dubai Call Girls O528786472 Diabolic Call Girls In Dubai
 
Unlock Your Social Media Potential with IndianLikes - IndianLikes.com
Unlock Your Social Media Potential with IndianLikes - IndianLikes.comUnlock Your Social Media Potential with IndianLikes - IndianLikes.com
Unlock Your Social Media Potential with IndianLikes - IndianLikes.com
 
办理伯明翰大学毕业证书文凭学位证书
办理伯明翰大学毕业证书文凭学位证书办理伯明翰大学毕业证书文凭学位证书
办理伯明翰大学毕业证书文凭学位证书
 
定制(ENU毕业证书)英国爱丁堡龙比亚大学毕业证成绩单原版一比一
定制(ENU毕业证书)英国爱丁堡龙比亚大学毕业证成绩单原版一比一定制(ENU毕业证书)英国爱丁堡龙比亚大学毕业证成绩单原版一比一
定制(ENU毕业证书)英国爱丁堡龙比亚大学毕业证成绩单原版一比一
 
Mastering Wealth with YouTube Content Marketing.pdf
Mastering Wealth with YouTube Content Marketing.pdfMastering Wealth with YouTube Content Marketing.pdf
Mastering Wealth with YouTube Content Marketing.pdf
 
Top Astrologer, Kala ilam specialist in USA and Bangali Amil baba in Saudi Ar...
Top Astrologer, Kala ilam specialist in USA and Bangali Amil baba in Saudi Ar...Top Astrologer, Kala ilam specialist in USA and Bangali Amil baba in Saudi Ar...
Top Astrologer, Kala ilam specialist in USA and Bangali Amil baba in Saudi Ar...
 

How facebook works and function- a complete approach

  • 1. The Technology Behind Facebook Revealed Presented by: Prakhar Gethe ( CEO and Co-founder Team Zenith)
  • 2. Why Facebook Is Giant  Facebook is the “social networking”.  People have been “facebooking” each other for about 7 years now, making Facebook the most used social network with over 500 million users worldwide.  50% of our active users log on to Facebook in any given day  Average user has 130 friends  People spend over 700 billion minutes per month on Facebook  There are over 900 million objects that people interact with (pages, groups, events and community pages)  Average user is connected to 80 community pages, groups and events  Average user creates 90 pieces of content each month  More than 30 billion pieces of content (web links, news stories, blog posts, notes, photo albums, etc.) shared each month.
  • 3. Here are a few factoids to give you an idea of the scaling challenge that Facebook has to deal with:  Facebook serves 570 billion page views per month (according to Google Ad Planner).  There are more photos on Facebook than all other photo sites combined (including sites like Flickr).  More than 3 billion photos are uploaded every month.  Facebook’s systems serve 1.2 million photos per second. This doesn’t include the images served by Facebook’s CDN.  More than 25 billion pieces of content (status updates, comments, etc) are shared every month.  Facebook has more than 30,000 servers (and this number is from last year!) Scaling Challenge Of Facebook
  • 4. Software That Helps Facebook Scale In some ways Facebook is still a LAMP site (kind of), but it has had to change and extend its operation to incorporate a lot of other elements and services, and modify the approach to existing ones. For example:  Facebook still uses PHP, but it has built a compiler for it so it can be turned into native code on its web servers, thus boosting performance.  Facebook uses Linux, but has optimized it for its own purposes (especially in terms of network throughput).  Facebook uses MySQL, but primarily as a key-value persistent storage, moving joins and logic onto the web servers since optimizations are easier to perform there (on the “other side” of the Memcached layer).  Then there are the custom-written systems, like Haystack, a highly scalable object store used to serve Facebook’s immense amount of photos, or Scribe, a logging system that can operate at the scale of Facebook (which is far from trivial).  But enough of that. Let’s present (some of) the software that Facebook uses to provide us all with the world’s largest social network site.
  • 5. For back end  PHP  C++  Java  Python  FBML( developed at Facebook)  Erlang  Xhp( developed at Facebook) Technology Used By Facebook Database  mysql-5.6  Memcached  Haystack  Cassandra  Scribe  Preasto For front –end  Ajax  JSON  Javascript  Jquery
  • 6. For Back-end • PHP PHP is a server-side scripting language designed for web development but also used as a general-purpose programming language. It stands for PHP: Hypertext Preprocessor • C++ C++ is a programming language that is general purpose, statically typed, free-form, multi-paradigm and compiled. • Java Java is a computer programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible. It is intended to let application developers "write once, run anywhere" (WORA), meaning that code that runs on one platform does not need to be recompiled to run on another. • Python Python is an interpreted, object-oriented, high-level programming language with dynamic semantics. Its high-level built in data structures, combined with dynamic typing and dynamic binding, make it very attractive for Rapid Application Development, as well as for use as a scripting or glue language to connect existing components together.
  • 7.  FBML FBML is a software environment provided by the social networking service Facebook for third-party developers to create their own applications and services that access data in Facebook  Erlang Erlang is a general-purpose concurrent, garbage-collected Programming language and runtime system. It was designed by Ericsson to support distributed, fault-tolerant, soft-real-time, non-stop applications. It supports hot swapping, so that code can be changed without stopping a system.  Xhp XHP is an augmentation of PHP developed at Facebook to allow XML syntax for the purpose of creating custom and reusable HTML elements.
  • 8. For Front-end  Ajax Ajax (an acronym for Asynchronous JavaScript and XML)[1] is a group of interrelated web development techniques used on the client-side to create asynchronous web applications. With Ajax, web applications can send data to, and retrieve data from, a server asynchronously (in the background) without interfering with the display and behavior of the existing page. Data can be retrieved using the XMLHttpRequest object. Despite the name, the use of XML is not required (JSON is often used instead.), and the requests do not need to be asynchronous.  JavaScript JavaScript (JS) is an interpreted computer programming language.As part of web browsers, implementations allow client-side scripts to interact with the user, control the browser, communicate asynchronously, and alter the document content that is displayed It has also become common in server-side programming, game development and the creation of desktop applications.
  • 9.  jQuery jQuery is a multi-browser (cf. cross-browser) JavaScript library designed to simplify the client-side scripting of HTML. It was released in January 2006 at BarCamp NYC by John Resig. It is currently developed by a team of developers led by Dave Methvin. Used by over 65% of the 10,000 most visited websites, jQuery is the most popular JavaScript library in use today  JSON JSON or JavaScript Object Notation, is an open standard format that uses human-readable text to transmit data objects consisting of attribute–value pairs. It is used primarily to transmit data between a server and web application, as an alternative to XML.  XML Extensible Markup Language (XML) is a markup language that defines a set of rules for encoding documents in a format that is both human- readable and machine-readable. It is defined in the XML 1.0 Specification[3] produced by the W3C, and several other related specifications,[4] all free open standards.[5]
  • 10. Database Technologies  mysql-5.6 MySQL is (as of July 2013) the world's second most widely used open-source relational database management system (RDBMS).It is named after co-founder Michael Widenius's daughter, My.The SQL phrase stands for Structured Query Language.  Memcached Memcached is by now one of the most famous pieces of software on the internet. It’s a distributed memory caching system which Facebook (and a ton of other sites) use as a caching layer between the web servers and MySQL servers (since database access is relatively slow). Through the years, Facebook has made a ton of optimizations to Memcached and the surrounding software (like optimizing the network stack).Facebook runs thousands of Memcached servers with tens of terabytes of cached data at any one point in time. It is likely the world’s largest Memcached installation.  Haystack Haystack is Facebook’s high-performance photo storage/retrieval system (strictly speaking, Haystack is an object store, so it doesn’t necessarily have to store photos). It has a ton of work to do. There are more than 20 billion uploaded photos on Facebook, and each one is saved in four different resolutions, resulting in more than 80 billion photos. And it’s not just about being able to handle billions of photos, performance is critical. As we mentioned previously, Facebook serves around 1.2 million photos per second, a number which doesn’t include images served by Facebook’s CDN. That’s a staggering number.
  • 11.  Cassandra Cassandra is a distributed storage system with no single point of failure. It’s one of the poster children for the NoSQL movement and has been made open source (it’s even become an Apache project). Facebook uses it for its Inbox search. Other than Facebook, a number of other services use it, for example Digg..  Scribe Scribe is a flexible logging system that Facebook uses for a multitude of purposes internally. It’s been built to be able to handle logging at the scale of Facebook, and automatically handles new logging categories as they show up (Facebook has hundreds).  Preasto Presto is an open source distributed SQL query engine for running interactive analytic queries against data sources of all sizes ranging from gigabytes to petabytes. Presto was designed and written from the ground up for interactive analytics and approaches the speed of commercial data warehouses while scaling to the size of organizations like Facebook.
  • 12. Hive Apache Hive is a data warehouse infrastructure built on top of Hadoop for providing data summarization, query, and analysis. Hadoop Distributed File System (HDFS) To understand how it’s possible to scale a Hadoop® cluster to hundreds (and even thousands) of nodes, you have to start with the Hadoop Distributed File System (HDFS). Data in a Hadoop cluster is broken down into smaller pieces (called blocks) and distributed throughout the cluster. In this way, the map and reduce functions can be executed on smaller subsets of your larger data sets, and this provides the scalability that is needed for big data processing
  • 13. Other Application  BigPipe BigPipe is a dynamic web page serving system that Facebook has developed. Facebook uses it to serve each web page in sections (called “pagelets”) for optimal performance. For example, the chat window is retrieved separately, the news feed is retrieved separately, and so on. These pagelets can be retrieved in parallel, which is where the performance gain comes in, and it also gives users a site that works even if some part of it would be deactivated or broken  Hadoop and Hive HadoopHadoop is an open source map-reduce implementation that makes it possible to perform calculations on massive amounts of data. Facebook uses this for data analysis (and as we all know, Facebook has massive amounts of data). Hive originated from within Facebook, and makes it possible to use SQL queries against Hadoop, making it easier for non-programmers to use. Both Hadoop and Hive are open source (Apache projects) and are used by a number of big services, for example Yahoo and Twitter.
  • 14.  Thrift Facebook uses several different languages for its different services. PHP is used for the front-end, Erlang is used for Chat, Java and C++ are also used in several places (and perhaps other languages as well). Thrift is an internally developed cross-language framework that ties all of these different languages together, making it possible for them to talk to each other. This has made it much easier for Facebook to keep up its cross-language development. Facebook has made Thrift open source and support for even more languages has been added  Varnish Varnish is an HTTP accelerator which can act as a load balancer and also cache content which can then be served lightning-fast. Facebook uses Varnish to serve photos and profile pictures, billions of requests every day. Like almost everything Facebook uses, Varnish is open source.
  • 15.  For Chat Epoll Server using Erlang Accessed using thrift  Message Search Inverted index stored in HBase  epoll epoll - I/O event notification facility The Epoll event mechanism is designed to scale to larger numbers of connections than select and poll. HBase HBase is an open source, non-relational, distributed database modeled after Google's BigTable and is written in Java.
  • 16. The Graph API  The Graph API presents a simple, consistent view of the Facebook social graph, uniformly representing objects in the graph (e.g.,people, photos, events, and pages) and the connections between them (e.g., friend relationships, shared content, and photo tags).  Restful API for accessing data on the Facebook graph.  Oauth 2.0 based authentication.  JSON Modeling of objects and connections.  Every object in the social graph has a unique ID. You can access the properties of an object by requesting - https://graph.facebook.com/ID  Alternatively, people and pages with usernames can be accessed using their username as an ID. All responses are JSON objects.  Specifications - http://developers.facebook.com/docs/api
  • 17. Facebook Markup Language  FBML is a variant-evolved subset of HTML with some elements removed.  It allows Facebook Application developers to customize the "look and feel" of their applications, to a limited extent.  It is the specification of how to encode content so that Facebook's servers can read and publish it.  FBML plays an important role in building applications. FBML is used to tap in to various Facebook elements when building applications.  It operates a lot like HTML and it gives the ability to do various tasks with ease such as:  ending a user e-mail  creating a two column form  embedding flash video  creating a dashboard  posting on a wall  displaying a header…etc
  • 18. Facebook’s New Messages • The new Messages interweaves your chats, texts and emails. It’s a central place to control all of your private communication, both on and off Facebook. • Simply put, it can be a single inbox for all of your messages, no matter how you choose to send them. • A facebook.com Email Address • SMS From Facebook • Chat History
  • 19. Open Source Software For mobile  Xctool xctool is a replacement for Apple's xcodebuild that makes it easier to build and test iOS and Mac products. It's especially helpful for continuous integration  Rebound Rebound is a Java library that models spring dynamics. Rebound spring models can be used to create animations that feel natural by introducing real world physics to your application.  Buck Buck is a build system for Android that encourages the creation of small, reusable modules consisting of code and resources. Because Android applications are predominantly written in Java, Buck also functions as a Java build system.
  • 20.  rng.io Powers the Ringmark testing framework at rng.io, as donated to the W3C Coremob Community Group.  Facebook SDK for iOS Use the Facebook SDK for iOS to integrate with Facebook, help build engaging social apps, and get more installs.  facebook-android-sdk Use the Facebook SDK for Android to integrate with Facebook, help build engaging social apps, and get more installs  Fishhook fishhook is a very simple library that enables dynamically rebinding symbols in Mach-O binaries running on iOS in the simulator and on devices.
  • 21. Open Source Software For Web  React React is a JavaScript library for building user interfaces. React uses a declarative paradigm that makes it easier to reason about your application. It's efficient: React computes the minimal set of changes necessary to keep your DOM up-to-date. And it's flexible: React works with the libraries and frameworks that you already know.  Hhvm HipHop VM (HHVM) is an open-source virtual machine designed for executing programs written in PHP. HHVM uses a just-in-time compilation approach to achieve superior performance while maintaining the flexibility that PHP developers are accustomed to. HipHop VM (and before it HPHPc) has realized more than a 5x increase in throughput for Facebook compared with Zend PHP 5.2.  Huxley Huxley is a test-like system for catching visual regressions in Web applications. It watches you browse, takes screenshots, and tells you when they change
  • 22.  Regenerator Regenerator is a source transformer enabling ECMAScript 6 generator functions (yield) in JavaScript-of-today (ES5). The generator syntax provides a much cleaner alternative to using callbacks when writing asynchronous server-side code.  facebook-php-sdk Use the Facebook SDK for PHP to integrate with Facebook, help build engaging social apps, and get more users. Some other tools are  node-haste  jstransform  rng.io  rebound  Tornado Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed. By using non-blocking network I/O, Tornado can scale to tens of thousands of open connections, making it ideal for long polling, WebSockets, and other applications that require a long-lived connection to each user.
  • 23. Open Source Software For Data  Presto Presto is an open source distributed SQL query engine for running interactive analytic queries against data sources of all sizes ranging from gigabytes to petabytes.  mysql-5.6 Facebook's branch of the Oracle MySQL v5.6 database  Scribe Scribe is a server for aggregating streaming log data. It is designed to scale to a very large number of nodes and be robust to network and node failures. There is a scribe server running on every node in the system, configured to aggregate messages and send them to a central scribe server (or servers) in larger groups. If the central scribe server isn’t available the local scribe server writes the messages to a file on local disk and sends them when the central server recovers. The central scribe server(s) can write the messages to the files that are their final destination, typically on an nfs filer or a distributed filesystem, or send them to another layer of scribe servers
  • 24. Open Source Software For Infra  Rocksdb RocksDB is an embeddable persistent key-value store for fast storage. RocksDB can also be the foundation for a client-server database but our current focus is on embedded workloads.  Opencompute The Open Compute Project Foundation is a rapidly growing community of engineers around the world whose mission is to design and enable the delivery of the most efficient server, storage and data center hardware designs for scalable computing  Pfff pfff is mainly an OCaml API to write static analysis, dynamic analysis, code visualizations, code navigations, or style-preserving source-to-source transformations such as refactorings on source code  Swift Swift is an easy-to-use, annotation-based Java library for creating Thrift serializable types and services.
  • 25.  Folly Folly is an open-source C++ library developed and used at Facebook. It is a library of C++11 components designed with practicality and efficiency in mind. It complements (as opposed to competing against) offerings such as Boost and of course std. In fact, we embark on defining our own component only when something we need is either not available, or does not meet the needed performance profile.  Flashcache FlashCache is a general purpose writeback block cache for Linux. Some other relevant tools:  tornado  pyaib  watchman  hhvm
  • 26. Gradual releases and dark launches  Facebook has a system, Gatekeeper that lets run different code for different sets of users.  This lets Facebook do gradual releases of new features, activate certain features only for Facebook employees, etc.  Gatekeeper also lets Facebook do something called “dark launches”, which is to activate elements of a certain feature behind the scenes before it goes live.
  • 27.  Facebook has also widgetized large portions of their application, meaning that widgets can be written in an appropriate language instead of simply using PHP. These widgets interface with the other parts of the application through the use of internal APIs.  Like many other big sites, Facebook uses a Content delivery network (CDN) to help serve static content.  And then of course there is the huge data center Facebook is building in Oregon to help it scale out with even more servers.
  • 28. Shocking facts about Facebook A third of all divorce filings in 2011 contained the word "Facebook” Iceland used Facebook to rewrite its constitution! Adding the number 4 to the end of Facebook’s URL will automatically direct you to Mark Zuckerberg’s wall. Facebook pays $500 to anyone who can hack into it!. A couple got murdered because they de- friended someone on Facebook A man was ordered to apologize on Facebook or Go to Jail Read more at www.omg-facts.com