diff --git a/website/source/intro/vs/proxies.html.md b/website/source/intro/vs/proxies.html.md new file mode 100644 index 0000000000..80ecb8f8c7 --- /dev/null +++ b/website/source/intro/vs/proxies.html.md @@ -0,0 +1,55 @@ +--- +layout: "intro" +page_title: "Consul vs. Envoy and Other Proxies" +sidebar_current: "vs-other-proxies" +description: |- + Modern service proxies provide high-level service routing, authentication, telemetry, and more for microservice and cloud environments. Envoy is a popular and feature rich proxy. This page describes how Consul relates to proxies such as Envoy. +--- + +# Consul vs. Envoy and Other Proxies + +Modern service proxies provide high-level service routing, authentication, +telemetry, and more for microservice and cloud environments. Envoy is +a popular and feature rich proxy. + +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. + +Proxies form what is referred to as the "data plane": the pathway which +data travels for network connections. Above this is the "control plane" +which provides the rules and configuration for the data plane. Proxies +typically integrate with outside solutions to provide the control plane. +For example, Envoy integrates with Consul to dynamically populate +service backend addresses. + +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. + +Consul provides a built-in proxy written in Go. This trades performance +for ease of use: by being built-in to Consul, users of Consul can get +started with solutions such as Connect without needing to install other +software. But the built-in proxy isn't meant to compete on features or +performance with dedicated proxy solutions such as Envoy. Consul enables +third party proxies to integrate with Connect and provide the data +plane with Consul operating as the control plane. + +The Connect feature of Consul operates at layer 4 by authorizing a TLS +connection to succeed or fail. Proxies provide excellent solutions to +layer 7 concerns such as path-based routing, tracing and telemetry, and +more. Consul encourages using any proxy that provides the featureset required +by the user. + +Further, by supporting a pluggable data plane model, the right proxy can be +deployed as needed. For non-performance critical applications, the built-in +proxy can be used. For performance critical applicaiotns, Envoy can be used. +For some applications that may require hardware, a hardware load balancer +such an F5 appliance may be deployed. Consul provides an API for all of these +solutions to be integrated. diff --git a/website/source/layouts/intro.erb b/website/source/layouts/intro.erb index a3bab1dcdf..12c867a5e3 100644 --- a/website/source/layouts/intro.erb +++ b/website/source/layouts/intro.erb @@ -32,6 +32,9 @@