Facebook garners big gains from tighter management of open source

PCWorld News

Thanks to some applied discipline, Facebook is reaping greater benefits from its efforts around open source software.

The social network has relied on open source since its inception, but it didn’t formalized those efforts until 2013 when infrastructure engineer James Pearce started overseeing its open source projects.

The company relies almost exclusively on open source to serve its billion-plus users. Having the source code for software it uses allows it to easily make changes that suit its needs. Its engineers have modified many programs, including MySQL, JavaScript and PHP, so they can better serve its massive user base.

With so many users, “we faced a lot of new challenges that the software wasn’t designed for,” Pearce said Wednesday in a talk at the Linux Summit in Santa Rosa, California. “So we work hard to try to improve them.”

The company’s React JavaScript framework, for instance, was the result of its effort to improve JavaScript, while its Hip Hop Virtual Machine optimized PHP to run more quickly. It has made both those tools open sourced to get input from other developers.

Relying on open source also helps Facebook’s new technical hires get up to speed quickly. “If you have to wait six months for an engineer to get trained on some proprietary internal system, that is time wasted, “ Pearce said.

Facebook has maintained 235 open source projects on GitHub, consisting of more than 10 million lines of code. The software covers all aspects of running an Internet service, including data management, security, Web design, mobile computing, and infrastructure management.

Posting code it developed in house has helped Facebook in numerous ways. “It makes us write better software,” Pearce said. Knowing their work will be exposed to other developers means its engineers write cleaner, more modular code that’s less inextricably tied to other Facebook programs.

When Pearce assumed the role as open source steward, he wrote a series of scripts to get information from GitHub about how the software is being used by outside parties. He can see how many external developers a project attracts, how many suggested changes or bug reports they submit and how quickly those changes are applied.

“You can see which projects are doing well and which projects have issues,” Pearce said.

This data has spurred project owners to update their code more quickly. When Pearce first started keeping tabs, the average pull request, or suggested change, was over a year. That time is now down to three months.

The company has also increased its contributions to other open source projects. In 2014, Facebook engineers contributed 214 changes to the Linux kernel, up from 6 in 2013.

Having its own modifications implemented in the Linux kernel means Facebook engineers don’t have to re-implement their changes each time the kernel is updated. It also ensures that Linux-tested equipment from hardware manufacturers will be ready to operate within Facebook, Pearce said.

To comment on this article and other PCWorld content, visit our Facebook page or our Twitter feed.
Shop Tech Products at Amazon
Notice to our Readers
We're now using social media to take your comments and feedback. Learn more about this here.