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 deploys, realtime metrics and resiliency.
|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. The other 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 comma's.
$ vulcand --aliases 'Host("localhost")=Host("192.168.1.1")'