NATS in Docker
make clustering simple
with Weave Net & Scope
Ilya Dmitrichenko
May 2016
Slide 2
Slide 2 text
Outline
• Motivation
• why do I need a container network?
• why to use Weave Net?
• where does Weave Scope help?
• Demo (Docker for Mac and Amazon ECS)
Slide 3
Slide 3 text
Why to use containers?
• standard unit of software delivery (CI/CD)
• ship code faster, as it’s easier to manage
• multiple version etc
• orchestration / cluster management
• tight isolation and better utilisation
Slide 4
Slide 4 text
Why do I need a container network?
• you may want to use an orchestrator
• some orchestrators require a network
• options vary, depending on cloud provider
• you need something that just works
Slide 5
Slide 5 text
Why chose Weave Net?
• works with any orchestrator (or without one)
• provides unique IP for each container
• has simple service discovery built-in
• easy to setup and manage
• works with all runtimes, as you will see
• works the same in any cloud
Slide 6
Slide 6 text
What do you mean by any orchestrator?
• Kubernetes
• EC2 Container Service
• Docker Swarm
• Apache Mesos
• DC/OS
Slide 7
Slide 7 text
How does Weave Net work?
• lightweight micro-SDN
• resilient mesh architecture
• uses L2/VXLAN, supports multicast
• no external config store required
• all state leave on the network
Slide 8
Slide 8 text
How does service discovery work?
• fast in-memory DNS
• simply find containers by name
• no port number lookup
• no port remapping
• no code changes
Slide 9
Slide 9 text
How does Weave Scope work?
• lightweight microservices control panel
• samples network traffic
• gets metadata Docker
• talks to orchestrator APIs
• zero-config
• plugins
Slide 10
Slide 10 text
How does Weave Net help NATS?
• simple DNS service discovery
• deploy clusters anywhere, any scale
• no port remapping, just use default ports
• remote access for development, crypto
Slide 11
Slide 11 text
How does Weave Scope help NATS?
• confirm cluster configuration is function
• confirm clients connect to different nodes
• observe how system changes as you scale
• debug containers in any orchestrator