In an indication of how rapidly the containerized technology ecosystem is metastasizing, SocketPlane.io — a startup venture founded just last October with the goal of building a controller-less software-defined network model for Docker environments — is being acquired by Docker, Inc., the two organizations jointly announced Wednesday morning.
Profiled in The New Stack just last month, SocketPlane creates a networking abstraction for Docker containers at the socket layer. It connects containers without the need for a network controller, either physical or virtual. Put another way, it facilitates a software-defined network by letting the containers be the network.
Beyond the First SDN
The upshot of using SocketPlane is that you can create multiple containers within a single logical network. Such a network can exist within the address space of a single processor, without invoking a network controller.
“We saw networking emerging as a very important part of Docker-based distributed apps,” said Scott Johnston, Docker, Inc.’s vice president for products, in an interview with The New Stack. “We had some capabilities in the company, but when we saw the use cases for networking between Docker containers in the distributed app model, we saw that there’s a need for a level of expertise and experience that wasn’t in our four walls.”
SocketPlane creates a logical network using IPv4 addresses. So in the sense that it manages that logical network on its own plane, SocketPlane has a kind of SDN… kind of. What’s missing is that API. It will be built by the open source community. But as quickly as the Docker community is growing and the ecosystem around Docker is metastasizing, a serious but silly-sounding question emerged: Would there be only one?
“We wanted expertise in-house to shepherd the community efforts around developing this open API,” said Johnston, “so that it would be an API that would allow both the users to succeed in terms of building portable applications, as well as allow community implementations to succeed in providing implementations that really allow them to highlight their differentiation.”
Doing Away with Layer 2
Brent Salisbury, who co-founded SocketPlane, served for nearly a year as a senior software engineer at Red Hat. During his announcement of SocketPlane’s founding at the DevOps4Networks conference last October, he explained why the scalability of non-monolithic applications could become a problem for organizations as they rely to greater and greater extents upon lower layers of the network.
“L2 is just insane,” Salisbury said, referring to the data link layer in the OSI model. “We still have L2 networks, and it’s nothing more than bad architectures. Either that, or it’s a really, really bad application.”
What are development shops doing with networking, Salisbury says he has asked them, that has to have L2? “The main reason we still have L2 is for live workload migrations, right? I’m not saying sysadmins are being lazy about it, because it’s really attractive: ‘I want to take a VM on one side of the network, and I want it to appear somewhere else in the network, and I don’t want to have to do anything. I want the same IP address …’ More than anything, we’ve got to get rid of L2, because there’s no operational scale to L2. Anywhere you extend L2 in your network, that’s where your network is going to break at some point.”
One example Salisbury offers is reactive OpenFlow, a class of SDN operation where a switch can send packets with no forwarding information to an OpenFlow SDN controller through a backchannel interface. This enables the controller to determine an end-to-end policy route that pertains to the specific flow for that packet. There’s debate in SDN circles over whether this kind of operation truly counts as Layer 2. Whether it’s Layer 2 or 22, SocketPlane’s Salisbury believes, it’s proven to be incapable of scaling.
We shared Salisbury’s views from last October with Docker’s Scott Johnston. His response was surprising, going so far as to declare today’s SDN already outmoded, even invoking the past tense.
“OpenFlow — the technology of the time — was phenomenal for what it did, which was networking between virtual machines,” said Johnston. “If we reflect on that, in terms of numbers of units, virtual machines are measured in tens, maybe even as high as a hundred. But as soon as we talk about networking amongst containers, we’re talking about an order of magnitude or more in terms of volume — we’re talking about hundreds, if not thousands, of containers needing to be networked. So right there, you’ve got a tremendously different scale than the original design point for OpenFlow.”
Docker has a first-generation networking system already built in, he reminded us, and from that, the organization has already learned a lot. But during the second half of 2014, Docker noticed its customers networking thousands of containers across multiple hosts and across data centers. It was at that time that Docker sent its team into the community at large, examining up-and-coming startups. In discussing with them how Docker integrated with OpenStack for private and hybrid cloud, and OpenDaylight and Open vSwitch for SDN, one name just kept cropping up in every discussion: SocketPlane.
But SocketPlane didn’t get in the game to be acquired, Johnston admitted. As a recent search of GitHub will corroborate, it was to drive the discussion on Docker networking.
“These guys joined the community in Q4, jumped in with both feet, actively contributed, were recognized by a wide number of community members for their smarts, for their respect, for having very grounded and thoughtful conversations in the public view, for the quality of code they were producing, for the quality of prototypes they were presenting. That caught our attention.”
It was mid-January when the discussion started between the two firms, not about being in business together, said Johnston, but building a portable, self-networking platform that can be applied in any variety of implementation across any environment: apps that network themselves with or without the Internet.
In a statement issued Wednesday morning, Docker, Inc. said it believes SocketPlane’s alternative approach frees developers from having to adopt any networking policy that’s tied to a single vendor or cloud provider. As applications become more portable across heterogeneous infrastructures, the organization said, alternative approaches to SDN require stronger definition. The group hopes the acquisition will provide an opportunity for developers, network engineers, and operations managers to align together under a common framework.