Consul vs. Envoy and Other Proxies
Proxies require a rich set of configuration to operate since backend addresses, frontend listeners, routes, filters, telemetry shipping, and more must all be configured. Further, a modern infrastructure contains many proxies, often one proxy per service as proxies are deployed in a “sidecar” model next to a service. Therefore, a primary challenge of proxies is the configuration sprawl and orchestration.
Consul is a control plane solution. The service catalog serves as a registry for services and their addresses and can be used to route traffic for proxies. The Connect feature of Consul provides the TLS certificates and service access graph, but still requires a proxy to exist in the data path. As a control plane, Consul integrates with many data plane solutions including Envoy, HAProxy, Nginx, and more.
Proxies provide excellent solutions to layer 7 concerns such as path-based routing, tracing and telemetry, and more. By supporting a pluggable data plane model, the right proxy can be deployed as needed. For performance-critical applications or those that utilize layer 7 functionality, Envoy can be used. For non-performance critical layer 4 applications, you can use Consul’s built-in proxy for convenience.