Why Facebook open-sourced its datacenters

Facebook has open-sourced its fully custom datacenter and server designs, down …

Facebook has opened up a whole new front in its war with Google over top technical talent and ad dollars. Instead of simply hiring away Google engineers, the social networking service is now aiming to do for its datacenters what Google is doing with Android—that is, it's taking an open-source approach that will let the company harness the energy and know-how of a larger ecosystem of programmers and engineers to make its ad business that much more profitable. Facebook has framed the announcement as part of its commitment to openness, but there are much larger forces at work here. Specifically, despite what most people think, Facebook and Google are hardware companies, and the former's open-source datacenter will potentially help it compete in the datacenter arena with its much larger and deeper-pocketed rival.

Open and closed

Despite Google's professed love for all things open, details of its massive datacenters have always been a closely guarded secret. Google only talks about its servers once they're obsolete, and even general information, like whether the company prefers Intel or AMD, is hard to come by.

Facebook's new OpenCompute.org project, in contrast, takes the exact opposite approach. The social networking company is not only releasing every last detail of its custom-from-the-ground-up datacenter and server designs—down to the CAD drawings for chassis and motherboards—but it's also inviting the open source community and other partners to use them and improve on them.

"By releasing Open Compute Project technologies as open hardware," Facebook writes, "our goal is to develop servers and data centers following the model traditionally associated with open source software projects. Our first step is releasing the specifications and mechanical drawings. The second step is working with the community to improve them."

The groundwork for the current announcement was apparently laid in 2009, when Facebook began to outgrow the leased datacenters it was using. The company then decided to build its own datacenter in Prineville, OR and optimize every aspect of it, from the architecture of the facility down to the individual server hardware and software, for power and minimal environmental impact.

It makes sense that a company the size of Facebook would follow the Google route and build its own, custom datacenter and servers, but the open source move is a clever and surprising twist. The company claims that this decision grows out of its commitment to openness, but there are no doubt other considerations, as well.

Giant, fully custom ad servers

Some estimates place Facebook's revenues in the ballpark of $2 billion by the end of this year, or less than one tenth the size of Google's. Google has over $34 billion in cash on hand, and a workforce that's over ten times the size of Facebook's. All told, Facebook is still a fraction of the size of Google.

When it comes to datacenters, size matters, because a fully custom datacenter design like what Facebook has done is a fairly capital- and talent-intensive business. Google currently has a lot more capital and talent to throw at the datacenter side of its business, and this will give it a large and durable edge over a smaller rival like Facebook in terms of efficiency, uptime, and regular innovation. Facebook's answer, then, is to punch way above its weight by open-sourcing its work so far and inviting partners in to help, so that Google (as a proprietary datacenter company) has to compete with a large, open ecosystem.

The idea that Google and Facebook are somehow competing with one another in the datacenter space may sound odd at first, given that most people are used to thinking of Google somewhat vaguely as an ad-supported software company. But as we're fond of pointing out, Google is essentially a maker of very capital-intensive, full-custom, warehouse-scale computers—a "hardware company," if you will. It monetizes those datacenters by keeping as many users as possible connected to them, and by serving ads to those users. To make this strategy work, it has to hire lots of software people, who can write the Internet-scale apps (search, mainly) that keep users connected and viewing ads. Since the price of Google ads is set largely independently of Google's cost of delivery, every dollar of efficiency that Google can wring out of one of these large computers is a dollar that goes to the bottom line.

Facebook now finds itself in a similar business. The social network giant has to build and run these large, capital-intensive, warehouse-scale computers as efficiently as possible, and it employs software engineers whose job is to keep users connected to these computers and viewing ads. But Facebook has far fewer resources than Google to throw at this very difficult problem, hence the open-source, ecosystem-based approach.

If Facebook's approach catches on, Google would almost certainly use some of the social network's technology in its own datacenters. But that won't bother Facebook, because it doesn't have to beat Google to win. Rather, the move will be a success if it only serves to shrink some of Google's relative advantage. Anything that lets Facebook become more competitive by eliminating some of Google's advantage in delivering ads cheaply will be a success.