Upgrade to Pro — share decks privately, control downloads, hide ads and more …

NATS in Docker: make clustering simple with Wea...

NATS in Docker: make clustering simple with Weave Net & Scope

Ilya Dmitrichenko

May 10, 2016
Tweet

More Decks by Ilya Dmitrichenko

Other Decks in Technology

Transcript

  1. 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)
  2. 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
  3. 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
  4. 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
  5. What do you mean by any orchestrator? • Kubernetes •

    EC2 Container Service • Docker Swarm • Apache Mesos • DC/OS
  6. 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
  7. How does service discovery work? • fast in-memory DNS •

    simply find containers by name • no port number lookup • no port remapping • no code changes
  8. How does Weave Scope work? • lightweight microservices control panel

    • samples network traffic • gets metadata Docker • talks to orchestrator APIs • zero-config • plugins
  9. 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
  10. 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