Facebook has expanded the scope of its Open Compute Project to include networking. The plan to create a specification for a top-of-rack open source switch kicked off at the first-ever Open Compute Engineering Summit at MIT in mid-May.
Open Compute has provided design specs for open source servers, storage, racks and other data center peripherals for massive data centers like Facebook's. Now
It dawned on us that we are building these massively scaled data centers in large part out of open source software and hardware, but the way we're connecting them to each other and to the Internet is still through a very closed and proprietary switched network.
vice president of hardware design and supply chain operations, Facebook
Facebook's vision for an open source switch also has implications for the software-defined networking [SDN] industry. To learn how this project affects SDN, read part two of this Q&A.
First off, why is the Open Compute Project designing an open source switch?
Frank Frankovsky: We started to see a lot of cool technology contributions and derivative works that are coming out of applying open source principles to the hardware space. It dawned on us that we are building these massively scaled data centers in large part out of open source software and hardware, but the way we're connecting them to each other and to the Internet is still through a very closed and proprietary switched network. So, part of it was just in the hopes that we would see the same kind of rapid progress on switch technologies that we've seen just in our first few years of applying open source principles to the server and storage space.
Second, the ability to treat the switch hardware separately from switch software is a real critical component of this, so that customers can have flexibility and choice in how they deploy the hardware. In our view [the switch] should be just another server in the rack that shows up with no operating system on it. It should have the pre-boot environment and you can boot it to any operating system of your choice. And furthermore, you can modify the code that runs on it.
[Facebook Director of Technical Operations] Najam [Ahmad] and many others involved in this project are pretty passionate about being able get much more granular control and much more granular insight into what's happening at the physical switch layer. Today, because switches are distributed as a black box appliance, the end user is abstracted from what's actually happening at the physical layer. By applying these principles of open source and giving customers full control over the hardware and the software modules that run on it, we're going to be able to deliver that promise to the customer of being able to tightly control how they design, build, monitor and optimize their networks.
What sort of contribution are you looking for from the software community?
Najam Ahmad: We're still working through the specifics. We had a really great working session at the OCP Engineering Summit in Boston. We're working on our charter, and especially what this would look like. At minimum, we're looking for the low-level driver/boot loader-type software base that will be part of the package of the specification, the idea being that the switch itself boots up and it's essentially able to look for an operating system in different locations or discover a URL and things of that nature. We're not talking about putting an operating system on it, but talking about the switch being able to boot up in any operating system -- essentially disaggregating the hardware and the software.
To do that, you still need that software at the low level. If you compare that to [a] server or PC, there's the BIOS that does the hardware checking. Then it looks for a boot loader or OS to boot on. So, I think the initial consensus is towards that. Then you could run software from OpenDaylight or Cumulus or any of the traditional OEMs, or your open source, OpenStack-type environments.
Do you have specific original design manufacturers or OEMs in mind that you want to work with?
Frankovsky: The way we've typically seen these projects take shape, we have suppliers and customers that approach the foundation to become involved in the project. And many of the traditional suppliers -- Cisco, Broadcom -- are in the process of approaching us -- and they even attended first meeting Najam held last week.
Everyone starts to make proposals around how to shape the project. And then it's really up [to] the community to vote on what direction they want to take the project. I think we're going end up with a lot of great technology contributions, but at the end of the day, it's a consumer-led voting process, not a supplier-led voting process. That's why we're pretty bullish that we're going to have some pretty awesome results here. We've worked really hard within Open Compute to make sure it maintains a very customer-led focus. A lot of the vendor-led consortiums tend to stall because each of them have their own commercial interest in the project and they tend to vote things in the direction of their particular company, as opposed to voting things in favor of the consumer.
Ahmad: We already have several proposals [from vendors].
Are those proposals public?
Ahmad: They'll be on the website at some point.
I'm just curious if you're getting proposals from those OEMs that have had those black box systems, like Cisco.
Ahmad: I think the OEMs are still sort of figuring this out. And to be fair, we didn't have a specific charter. Vendors who took the initiative have said, 'Hey, what about this?' As we get the charter published, I'm sure we'll have more.
Do you envision Cisco allowing IOS or NX-OS to run on such an open source switch?
Ahmad: That's the choice [we want to offer]. What we're after, first, is disaggregation of hardware and software and, second, the ability to have choice in that. Once you have the choice, then you can run whatever you're comfortable with. And depending on a lot of other factors, you can run additional operating systems, additional protocol sets. You can run more SDN-oriented technology. You can make it an OpenFlow switch. Options are what we're after.
Other companies that operate at your scale -- Google and Amazon -- have built their own switches but kept their designs secret and proprietary. Why is Facebook opening this up? What are your intentions?
Frankovsky: History has proven in the software space that the pace of innovation moved forward a lot faster once open source principles and frameworks for these projects were put in place. And the types of features and control that customers can take over the software really accelerated the pace of innovation.
The reason that we choose to be open versus closed -- like some of our peers -- is we really believe that when you give one thing you get 10 things back. We don't know what those 10 things are going to be, but we've been pretty pleasantly surprised so far with some of the derivative works and the contributions that come back.
More on open source networking
Mellanox enables open source networking on Ethernet hardware
The SDN holy war will rage between open and proprietary players
Arista's EOS: Open, but not quite open source
Open source network management tools emerge long before open OS
Then Facebook can take advantage [of the community innovation], because even though we do [a] great job recruiting some of the best engineers in the world, we don't have all the best engineers under one roof. Neither does Google, and neither does Amazon, Cisco, Intel or any one company.
Ahmad: On the network side, what we're after is the disaggregation that we're trying push the industry toward. If you look at how you buy switches, if you look any glossy [spec sheet] of a switch, it's hardware specs, ports, speeds and feeds, and then software features. You can't just buy a switch that meets your specific needs in hardware and software.
And it's almost as important to worry about what's on the switch as what is not on the switch. Today if you buy an OEM switch, they have to cater to a pretty broad market with lots of different verticals that have their own requirements and feature sets. For example, we don't run any Layer 2 in our environment, but the switches we get will have Layer 2 on them. Those are software resources you burn. It's about the chances of bugs you're taking, and things of that nature. So, we want to have a very specific integration that is tailored to our environment, and you can't do that in a very vertically integrated package that you buy off the shelf. It's giving the user base options to pick and choose what's relevant for them, and have the industry think about that as well, and build network devices in that manner.
To read about the implications that Facebook's vision for an open source switch has for the SDN industry, read part two of this Q&A.