Engineering Blog

Blog posts tagged 'Infra'

Joel PobarEngineering

Hack Developer Day Recap

Posted about 4 years ago

A few weeks ago, Facebook introduced and open-sourced Hack, a gradually-typed programming language for HHVM that interoperates seamlessly with PHP. Yesterday we hosted our first Hack Developer Day to bring together members of the developer community for a deeper dive into Hack and HHVM. Read more...

Large-scale graph partitioning with Apache Giraph

Posted about 4 years ago
blog post · Infra · Data · Open Source · Graph · Graph Search · Performance · Optimization

Facebook’s architecture relies on various services that answer queries about people and their friends. Because of the size of the dataset, number of queries per second, and latency requirements, many of these systems cannot run on a single machine. Instead, people and their metadata are sharded across several machines. In such a distributed environment, answering queries might require communication among all these servers. Read more...

Andrei AlexandrescuResearch Scientist at Facebook

Under the Hood: warp, a fast C and C++ preprocessor

Posted about 4 years ago
blog post · Infra · Open Source · Languages

Today we are open-sourcing warp, a fast preprocessor for the C and C++ languages, written by Walter Bright in a joint project with Facebook. Read more...

Yael MaguireEngineering

Announcing The Connectivity Lab at Facebook

Posted about 4 years ago
blog post · Infra · Data · Connectivity

Today we're announcing the Connectivity Lab at Facebook, a team that is working on new aerospace and communication technologies to advance the Internet.org mission of improving and extending internet access. The Lab, which includes some of the world's top experts from Ascenta, NASA’s Jet Propulsion Laboratory, NASA’s Ames Research Center, and the National Optical Astronomy Observatory, is already working on new delivery platforms including planes and satellites to provide connectivity. Read more...

Hack: a new programming language for HHVM

Posted about 4 years ago
blog post · Infra · Culture · Backend · Open Source · Hack · Development Tools · HipHop · Languages · Platform · Menlo Parkmore

Today we're releasing Hack, a programming language we developed for HHVM that interoperates seamlessly with PHP. Hack reconciles the fast development cycle of PHP with the discipline provided by static typing, while adding many features commonly found in other modern programming languages. Read more...

Luiz ScheideggerSoftware Engineering Intern at Facebook

Introducing the Facebook Messenger for Android beta testing program

Posted about 4 years ago
blog post · Infra · Mobile · Messages · Testing · Android · Platform · User Experience · Performance

When we introduced Messenger two years ago, we set out to create a great messaging experience that would allow you to connect with friends over many different channels. We worked hard to make it so that you could reach people you care about, no matter if they were on web, mobile, or even via e-mail. A lot has happened since then, and today the majority of people connecting to the Internet for the first time do so on mobile. When we released Messenger 3.0 late last year, we decided to make it a world class mobile-to-mobile messaging platform. This included a complete redesign of the app, with increased focus on speed and reliability, and more tools for people to express themselves in a rich and dynamic way, with features like stickers and audio clips. With Messenger, we want to empower people passionate about messaging with a fast and simple way to communicate with their friends. Read more...

Lyrica McTiernanEngineering

Open sourcing PUE/WUE dashboards

Posted about 4 years ago
blog post · Infra · Open Source

Last April, we launched public dashboards that visualize real-time energy and water efficiency in our Oregon and North Carolina data centers. We’re proud of our data center efficiency, and we wanted to demystify data centers and share more about what our operations really look like. Read more...

Looking back on “Look Back” videos

Posted about 4 years ago

Facebook’s mission is to help people connect with one another, and as our 10th anniversary approached last month, we wanted to do something that would let everyone participate in the event together. After some discussion, we settled on the Look Back feature, which allows people to generate one-minute videos that highlight memorable photos and posts from their time on Facebook. Read more...

Scott GoodsonEngineering Manager for Paper at Facebook

Building Paper

Posted about 4 years ago

A few weeks ago we launched Paper, a new app to explore content from your friends and the world around you—with built-in access to all the core features of Facebook. Through the process of implementing the fresh design and creating about 20 new categories of content, the team has developed new frameworks and architectural approaches to address the toughest challenges we encountered. In a series of blog posts, tech talks, and open source releases, we hope to give a comprehensive overview of the key parts of Paper's implementation and share some of our most valuable lessons learned while building this interaction-rich app on iOS. Read more...

Bryan KlimtEngineering

Building and open-sourcing Bolts, a mobile developer tools library

Posted about 4 years ago
blog post · Mobile · Infra · Open Source · Platform

When Thrift was originally conceived, most services were relatively straightforward in design. A web server would make a Thrift request to some backend service, and the service would respond. But as Facebook grew, so did the complexity of the services. Making a Thrift request was no longer so simple. Not only did we have tiers of services (services calling other services), but we also started seeing unique feature demands for each service, such as the various compression or trace/debug needs. Over time it became obvious that Thrift was in need of an upgrade for some of our specific use cases. In particular, we sought to improve performance for asynchronous workloads, and we wanted a better way to support per-request features. Read more...

Emil HesslowSoftware engineer at Facebook

HHVM - Implementing MySQLi

Posted about 4 years ago

The MySQLi extension is very popular amongst PHP developers. We knew we had to support it in our HHVM runtime, and thought it would be interesting to share the process we went through to implement it. Read more...

Wyatt LloydEngineering at Facebook

An analysis of Facebook photo caching

Posted about 4 years ago
blog post · Infra · Photos · Caching

Every day people upload more than 350 million photos to Facebook as of Dec 2012 and view many more in their News Feeds and on their friends’ Timelines. Facebook stores these photos on Haystack machines that are optimized to store photos. But there is also a deep and distributed photo-serving stack with many layers of caches that delivers photos to people so they can view them. Read more...

Andrei AlexandrescuResearch Scientist at Facebook

Under the Hood: Building and open-sourcing flint

Posted about 4 years ago
blog post · Infra · Open Source

Flint, Facebook’s lint program, issues the lint errors and warnings appear automatically in our code review system (phabricator) alongside each proposed code change, notifying the programmer where something may be going wrong. Flint has become important to the work that we do at Facebook, and I'm very excited to open-source flint so that everyone can check out what we’ve built and try it for themselves. Read more...

Dave WatsonWebmaster at Facebook

Under the Hood: Building and open-sourcing fbthrift

Posted about 4 years ago
blog post · Infra · Open Source

When Thrift was originally conceived, most services were relatively straightforward in design. A web server would make a Thrift request to some backend service, and the service would respond. But as Facebook grew, so did the complexity of the services. Making a Thrift request was no longer so simple. Not only did we have tiers of services (services calling other services), but we also started seeing unique feature demands for each service, such as the various compression or trace/debug needs. Over time it became obvious that Thrift was in need of an upgrade for some of our specific use cases. In particular, we sought to improve performance for asynchronous workloads, and we wanted a better way to support per-request features. Read more...

Wyatt LloydEngineering at Facebook

An analysis of Facebook photo caching

Posted about 4 years ago
blog post · Infra · Photos · Caching

When Thrift was originally conceived, most services were relatively straightforward in design. A web server would make a Thrift request to some backend service, and the service would respond. But as Facebook grew, so did the complexity of the services. Making a Thrift request was no longer so simple. Not only did we have tiers of services (services calling other services), but we also started seeing unique feature demands for each service, such as the various compression or trace/debug needs. Over time it became obvious that Thrift was in need of an upgrade for some of our specific use cases. In particular, we sought to improve performance for asynchronous workloads, and we wanted a better way to support per-request features. Read more...

Subodh IyengarSoftware engineer at Facebook

Introducing Conceal: Efficient storage encryption for Android

Posted about 4 years ago
blog post · Web · Infra · Data · Security · Open Source · Android · Java · Development Tools · Caching · Storage · Performancemore

Caching and storage are tricky problems for mobile developers because they directly impact performance and data usage on a mobile device. Caching helps developers speed up their apps and reduce network costs for the device owner by storing information directly on the phone for later access. However, internal storage capacity on Android phones is often limited, especially with lower to mid range phone models. A common solution for Android is to store some data on an expandable SD card to mitigate the storage cost. What many people don't realize is that Android's privacy model treats the SD card storage as a publicly accessible directory. This allows data to be read by any app (with the right permissions). Thus, external storage is normally not a good place to store private information. Read more...

Ramya SethuramanEngineering

Under The Hood: Facebook Accessibility

Posted about 4 years ago
blog post · Web · Infra · Culture · Accessibility · Front End

Facebook’s mission is to give people the power to share and make the world more open and connected. Making our products accessible to people with disabilities is an incredibly important step towards achieving this mission. Read more...

Scaling Mercurial at Facebook

Posted about 4 years ago
blog post · Infra · Open Source · Performance · Optimization

With thousands of commits a week across hundreds of thousands of files, Facebook's main source repository is enormous--many times larger than even the Linux kernel, which checked in at 17 million lines of code and 44,000 files in 2013. Given our size and complexity—and Facebook's practice of shipping code twice a day--improving our source control is one way we help our engineers move fast. Read more...

James PearceEngineering at Facebook

2013: A Year of Open Source at Facebook

Posted about 4 years ago
blog post · Data · Mobile · Web · Infra · Open Source · Languages

Open source has always been a huge part of the Facebook engineering philosophy. 2013 has been a great year for our open source program, with a significant number of new projects that we're really proud of, a renewed commitment to run and maintain them actively, and a desire to work with the vibrant communities that have built up around them. Read more...

Dhruba BorthakurEngineering

Under the Hood: Building and open-sourcing RocksDB

Posted about 4 years ago
blog post · Data · Infra · Backend · Production Engineering · Open Source · Storage

Every time one of the 1.2 billion people who use Facebook visits the site, they see a completely unique, dynamically generated home page. There are several different applications powering this experience--and others across the site--that require global, real-time data fetching. Read more...

Martin TraversoEngineering

Presto: Interacting with petabytes of data at Facebook

Posted about 4 years ago
blog post · Data · Infra · Backend · Performance

Facebook is a data-driven company. Data processing and analytics are at the heart of building and delivering products for the 1 billion+ active users of Facebook. We have one of the largest data warehouses in the world, storing more than 300 petabytes. How do we query it all?. Read more...

Ashoat TevosyanSoftware engineer at Facebook

Under the Hood: Building posts search

Posted about 4 years ago
blog post · Infra · Data · Production Engineering · Graph Search

Last week we added the ability to search posts using Graph Search, a feature that has been two years in the making. With one billion new posts added every day, the posts index contains more than one trillion total posts, comprising hundreds of terabytes of data. Indexing these posts and building a system to return real-time results has been a significant engineering challenge — and this is just beginning. Read more...

Shlomo PriymakEngineering

Under the hood: MySQL Pool Scanner (MPS)

Posted about 4 years ago
blog post · Data · Infra · MySQL

Facebook has one of the largest MySQL database clusters in the world. This cluster comprises many thousands of servers across multiple data centers on two continents. Read more...

Domas MituzasInfrastructure Engineer at Facebook

Flashcache at Facebook: From 2010 to 2013 and beyond

Posted about 4 years ago
blog post · Infra · Data · Storage · Caching · Performance · Optimization

We recently released a new version of Flashcache, kicking off the flashcache-3.x series. We’ve spent the last few months working on this new version, and our work has resulted in some performance improvements, including increasing the average hit rate from 60% to 80% and cutting the disk operation rate nearly in half. Read more...

Avery ChingEngineering

Scaling Apache Giraph to a trillion edges

Posted about 4 years ago
blog post · Data · Infra · Java · @Scale

Graph structures are ubiquitous: they provide a basic model of entities with connections between them that can represent almost anything. Flight routes connect airports, computers communicate to one another via the Internet, webpages have hypertext links to navigate to other webpages, and so on. Facebook manages a social graph that is composed of people, their friendships, subscriptions, and other connections. Read more...

Scott RenfroEngineering at Facebook

Secure browsing by default

Posted about 4 years ago
blog post · Web · Infra · Mobile · Security · Android · iOS · User Experience · Networking and Traffic

We now use https by default for all Facebook users. This feature, which we first introduced as an option two years ago, means that your browser is told to communicate with Facebook using a secure connection, as indicated by the "https" rather than "http" in https://www.facebook.com. This uses Transport Layer Security (TLS), formerly known as Secure Sockets Layer (SSL), and makes the communication between your browser and Facebook servers more secure. Read more...

Lachlan MulcahyEngineering

Windex: Automation for database provisioning

Posted about 4 years ago
blog post · Data · Infra · Production Engineering · Storage

Windex was originally developed to wipe data from hosts coming out of production, reinstall everything from the OS through to MySQL, and then configure them so they could be placed back into the spares pool all shiny and new. Now, Windex has expanded its role to cover all provisioning of MySQL DB hosts, whether they are freshly racked and set up by our site operations team or taken out of production for an offline repair like RAM replacement. Read more...

Keep Updated

Stay up-to-date via RSS with the latest open source project releases from Facebook, news from our Engineering teams, and upcoming events.

Subscribe
Facebook © 2017