the good, the bad and the ugly of networking for microservices by mathew lodge, weaveworks
TRANSCRIPT
Container Networking: The Good, The Bad and The Ugly
Mathew LodgeWeaveworks
Container networking in last year• Good: IP per container networks, auto-
updating DNS, self-wiring networks• Bad: Understanding what’s actually going on• Ugly: Robustness, multicast
4
Typical microservice scenario
Worker Worker Worker
API Client API Client
API proxy / load balancer
5
The ugly: networking 1 year ago
Docker host 1 Docker host 2
Client
808080
Worker
4438443
6
The good: Networking today
Docker host 1 Docker host 2
Client
80
Worker
443
Ethernet bridge on Docker host VXLAN tunnel between hosts Ethernet bridge on Docker host
7
The good: DNS service discovery
DNS entries
10.0.0.1 www10.0.0.2 www10.1.0.1 svc x10.1.0.2 svc x10.1.0.3 svc x10.2.0.1 svc y10.2.0.2 svc y
www www
x x x
y y
www www
LB
Service X Service X
LB
Service Y
Service X
Service Y
Container network DNS auto-updatedwith container names
App view
The bad: visibility
9
Good: Docker app visualization…
Good: …while retaining CLI access
11
Ugly: Single point of failure
Consul 1 Consul 2 Consul 3
Host Host Host Host Host
12
Good: No single point of failure
Host Host Host Host Host
Weave Net: router container per host with eventually consistent shared cache
Thank you!