Weave connects containers and cures a major Docker headache

Docker is simple, but its networking is a nightmare. The Weave app uses networking under the hood to solve this frightful developer problem.

Weave's network connects containers, regardless of location
Image: Weaveworks

Last year Alexis Richardson and Matthias Radestock started Weaveworks to solve an application developer headache -- they wanted to give portable clusters and hybrid clouds to Docker users. The first Weaveworks release, Weave, is already in production use, and it hasn't even hit version 1 yet. Find out what Weave is, who uses it, and what the future holds.

Weave connects containers

Any complex application must be distributed across a network -- or even across several networks. Cloud computing applications must also be able to scale out. Docker tools for linking containers together don't make it easy for developers to build this type of distributed application from containers.

Docker is already part of the IT estate in large organizations like Spotify, New Relic, and ING, who had to come up with their own solutions to this Docker networking headache. Weave makes life easy for more organizations to follow their lead, by adding a kind of network overlay.

Under the hood, Weave uses "Weave routers" to keep track of the state of the network, automatically. These routers carry out many low-level networking tasks, such as tracking MAC addresses, encapsulating data, and routing packets.

Richardson, CEO of Weaveworks, said, "Our goal is to make the application developer's life incredibly simple. They can move to a world of containers without changing their practices, their code, and their tools."

A real-life example

Cloud66 is rolling out Weave to production customers. Cloud66 provides cloud management services to IT-centric customers, including Oxfam, the Gates Foundation, and CareerBuilder. Cloud66 CEO Khash Sajadi said the company provides "full-stack hosted container-management-as-a-service. We provide everything you need to run containers in production." Cloud66 integrates with all the top cloud providers, and they run servers in no less than 76 data centers.

The networking component of the Cloud66 toolset is called ContainerNet. When they built ContainerNet, Cloud66 evaluated many different approaches such as Ambassador Pattern, IPtable manipulation, and shared containers, before settling on Weave. Sajadi said, "The reason we liked it was you did not need to know about the topology of the network. It was all done behind the scenes, which aligns with our vision of 'things should just work.'"

A strong CEO

The success of a startup isn't just about having a killer product -- another Weaveworks advantage is a strong CEO. Richardson was involved with several high-profile open source products before Weave. With partner Radestock, Richardson cofounded the company that produced the RabbitMQ messaging server (Radestock describes RabbitMQ in this old InfoQ presentation).

RabbitMQ was bought by VMware in 2010. When VMware and EMC created the Pivotal Software company in 2013, Richardson became head of products for some famous names in their portfolio. Richardson said he was "responsible for Spring, RabbitMQ, Redis, and the commercial editions of those products. Which was sold under the brand vFabric in VMware days."

Weaveworks is not even a year old. Richardson and Radestock left Pivotal in Spring 2014, founded Weaveworks in July 2014, released a working version of Weave in September 2014, and raised $5M from Accel in December 2014. "The product picked up a lot of attention very quickly," Richardson said, because the new Weave product solved the problem of "how you make Docker work for multiple machines."

Getting your Weave on

In true open source fashion, the Weave code is free to use, released under the Apache license, and ready to download from GitHub.

Weaveworks regularly publish how-tos on their blog to help users get to grips with this new product. These how-tos show how to use Weave with established applications like Apache Spark and Riak, and new products like the Crate.io database and Terraform.

Weave's approach to networking means containers anywhere can be connected together. It doesn't matter if the containers are running on-premise, in many public cloud services, or even in distributed devices -- Weave can connect them all. The "hello, weave" video connects AWS and GCE machines. The blog how-to Automated provisioning of multi-cloud weave network with Terraform creates a more complicated hybrid network.

To the hybrid cloud and beyond

Weaveworks created a networking product that developers can use without having to learn a new set of APIs, algorithms, or configuration files. Their next milestone will be the 1.0 release of Weave, filling out their networking solution with DNS, service discovery, and address allocation. After that, the team will work on NFV features like load balancers, monitoring tools for looking at the overall distributed state of the system, and optimizing transports.

Richardson summarized his vision of the Weaveworks future. "We want to be the default choice for container developers building applications, because we provide a lot of the low-level services they don't want to have to think about."

Also read

By Nick Hardiman
