Weaveworks wants to fix Docker's networking woes

Weaveworks promises to make Docker networking less brittle and difficult to manage -- something Docker might want as a standard feature

Weaveworks wants to fix Docker's networking woes

With Docker 1.9 out, third parties are building on top of its new features -- and devising fixes for persistent problems.

Take Docker networking. It's come a long way this year, thanks to a new networking model courtesy of Docker's Socketplane acquisition. But it still has limits, like the need to run an external key-value store to maintain connections between containers.

Weaveworks's Weave Net 1.4, a Docker networking add-on, allows distributed applications based on Docker to keep working even if network conditions flake out.

Docker 1.9's networking layer is pluggable, meaning new networking technologies could be supported as long as a driver was available. Weave Net uses this mechanism to bypass Docker's need for the networking cluster store. All coordination between containers across hosts is handled by the Weave plug-in's mesh networking, which performs service discovery for containers via DNS.

weave network Weaveworks

Weaveworks's Weave augments Docker's networking functions to allow automatic discovery, and obviates the need for network discovery data to be kept in an external database.

The problem with Docker's existing approach to networking, said Mathew Lodge, COO of Weaveworks, is that while it now gives you a great deal of functionality out of the box -- by default, all containers can be connected in an overlay network -- this requires running a key-value store like Consul or Zookeeper.

"Ironically," Lodge said, "you can't run any of those databases in containers, because you need the database to bring up the network. But you can't bring those up unless you have a network, so you have a chicken-and-egg thing going on."

Not only must those databases be set up and managed separately, they're "brittle," said Lodge. "If you lose contact with the database, you can't start or stop a container." The Weave Net plug-in, by contrast, keeps the networking data in memory and eventually consistent between containers, so there is no one point of failure.

Docker has a history of soaking up third-party solutions that solve some of its own problems at a high level. Consequently, there's always the possibility of Docker rolling Weave Net's functionality directly into Docker, leaving Weaveworks with one less item to offer its users.

"That's always the challenge in a platform like this," Lodge said. "If you're Docker, and you want to keep advancing the platform, and you want to make things standard, inevitably that means you're going to end up doing some of the things the ecosystem partners already do."

Lodge saw a similar mechanism at work with VMware, where over time the platform added more of the functionality supplied by the ecosystem partners: "It kind of goes with the territory."

That said, Lodge remained confident there would always be room for what third-party outfits could continue to offer Docker. "As long as we can keep adding value to the core platform,"he said, "then I think we're in good shape."