gitter-badger / ambd

An attempt at providing Ambassador pattern to container services

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ambd

The Ambassador pattern to container services

TL;DR

  • The Ambassador daemon ambd
ambd --addr 0.0.0.0:29091 --advertise advertise-host-ip:29091 \
    --prefix /debug/docker/ambassador/nodes \
    --proxy '{"name": "mysql", "net": "tcp", "src": ":3306", "dst": ["mysql-master-ip:3306", "mysql-slave-ip:3306"]}' \
    --proxy '{"name": "redis", "net": "tcp", "src": ":6379", "srv": "/srv/redis/debug"}' \
    --proxycfg /proxy/debug/v1 \
    etcd://etcd1-ip:2379,etcd2-ip:2379,etcd3-ip:2379
  • Runtime configuration client ambctl

    • ambctl list
    • ambctl create --name mgo --src :3376 --dst mgos-ip-1:3376 --dst mgos-ip-2:3376
    • ambctl cancel --name mgo --name redis
    • ambctl info
    • ambctl config /proxy/debug/v2
  • Available as docker image jeffjen/ambd

What is Ambassador Pattern

How To Use the Ambassador Pattern to Dynamically Configure Services portrays what this strategy could do to enable service discovery, enhanced connectivity and routing pattern.

Why ambd

  • It is a light weight proxy daemon.
  • Configuration is intuitive and shell scriptable.
  • Resiliant to network partition and automatic retry.

Together with docker packaging and network facility, we can deploy with confidence that code running the development environment will continue to work in production environment

See setting up a working deployment for a walkthrough over the system

About

An attempt at providing Ambassador pattern to container services

License:MIT License


Languages

Language:Go 98.5%Language:JavaScript 1.5%