Vulcand is a programmatic extendable proxy for microservices and API management. It is inspired by Hystrix and powers Mailgun microservices infrastructure.
Focus and priorities
Vulcand is focused on microservices and API use-cases.
- Uses etcd as a configuration backend.
- API and command line tool.
- Pluggable middlewares.
- Support for canary deployments, realtime metrics and resilience.
|status||Used in production@Mailgun on moderate workloads. Under active development.|
Vulcand has support for open tracing via the Jaeger client
libraries. Users who wish
to use tracing support should use the
--enableJaegerTracing flag and must
either run the Jaeger client listening on
localhost:6831/udp or set the
JAEGER_AGENT_POST. (See the
Jaeger client libraries
for all available configuration environment variables.)
When enabled vulcand will create 2 spans: one span called
covers the entire downstream request and another span called
only spans the processing of the middleware before the request is routed
When running vulcand in a kubernetes DaemonSet vulcand needs to know requests
from the local node can match
Host("localhost") rules. This
allows an author of a vulcand DaemonSet to tell vulcand the name of the node it's
currently running on, such that vulcand correctly routes requests for
--aliases flag allows the user to pass in multiple
aliases separated by commas.
$ vulcand --aliases 'Host("localhost")=Host("192.168.1.1")'