100% Free Forever
AI-Powered Learning
Industry Expert Content
Certificates & Badges
Learn At Your Own Pace

What is Envoy Proxy?

Learn what Envoy Proxy is, how xDS configures it dynamically, and why it powers Istio service mesh — with a DevOps interview answer.

mediumQ166 of 224 in DevOps Est. time: 5 minsLast updated:
Open Code Lab

Expected Interview Answer

Envoy is a high-performance, L4/L7 open-source proxy written in C++ that handles service discovery, load balancing, TLS termination, retries, and observability at the network edge, and it serves as the data-plane building block for service meshes like Istio and edge gateways alike.

Envoy runs as a self-contained process, typically deployed as a sidecar next to every application instance or as a standalone edge/ingress proxy, and it is configured dynamically through xDS APIs (Listener, Route, Cluster, Endpoint discovery services) rather than static config files, which lets a control plane push configuration changes without restarting Envoy. It understands HTTP/1.1, HTTP/2, gRPC, and raw TCP, and applies features like circuit breaking, outlier detection, retries with backoff, and rich per-request metrics uniformly regardless of the language the application is written in. Because Envoy exposes detailed stats and distributed tracing hooks out of the box, it gives every service consistent observability without instrumenting application code. Istio adopted Envoy as its sidecar data plane specifically because of this dynamic xDS configurability and its proven performance at scale inside companies like Lyft, where it originated.

  • Language-agnostic networking features applied uniformly across services
  • Dynamic configuration via xDS without process restarts
  • Built-in observability: metrics, logging, and distributed tracing hooks
  • Battle-tested resilience patterns: retries, circuit breaking, outlier detection

AI Mentor Explanation

Envoy is like a professional twelfth man stationed just off the field who intercepts every ball thrown toward the boundary rope, checking its trajectory and redirecting it to the right fielder without the bowler needing to worry about placement. This helper can be briefed with new instructions between overs without stopping the match, just as Envoy takes new configuration via xDS without restarting. Whether the bowler is a pacer or a spinner, the twelfth man applies the same consistent handling to every delivery. This uniform handling at the boundary is what makes fielding reliable regardless of who is bowling.

Step-by-Step Explanation

  1. Step 1

    Deploy as sidecar or edge proxy

    Envoy runs alongside each service instance or as a standalone ingress/edge gateway.

  2. Step 2

    Connect to a control plane

    Envoy subscribes to xDS APIs (LDS, RDS, CDS, EDS) to receive listener, route, cluster, and endpoint configuration dynamically.

  3. Step 3

    Intercept and route traffic

    Envoy terminates or proxies HTTP/1.1, HTTP/2, gRPC, or TCP traffic, applying retries, timeouts, and load balancing per configured rules.

  4. Step 4

    Emit telemetry

    Envoy exports per-request metrics, access logs, and trace spans uniformly regardless of the upstream application language.

What Interviewer Expects

  • Understanding of Envoy as a language-agnostic L4/L7 proxy
  • Knowledge of xDS as the dynamic configuration mechanism
  • Awareness that Envoy is the data plane underlying Istio
  • Ability to name concrete resilience features: retries, circuit breaking, outlier detection

Common Mistakes

  • Confusing Envoy (the proxy/data plane) with Istio (the control plane built on top of it)
  • Assuming Envoy requires a restart to pick up new routing config
  • Thinking Envoy only handles HTTP and not raw TCP or gRPC
  • Not mentioning observability as a core built-in Envoy feature

Best Answer (HR Friendly)

Envoy is the proxy that sits next to our services and handles the networking plumbing — retries, load balancing, encryption, and metrics — so our application code does not have to. It is the same proxy that powers Istio under the hood, and because it takes configuration changes live, we can update routing rules without ever restarting a service.

Code Example

Minimal static Envoy listener and cluster config
static_resources:
  listeners:
    - name: listener_0
      address:
        socket_address: { address: 0.0.0.0, port_value: 10000 }
      filter_chains:
        - filters:
            - name: envoy.filters.network.http_connection_manager
              typed_config:
                "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
                route_config:
                  virtual_hosts:
                    - name: backend
                      domains: ["*"]
                      routes:
                        - match: { prefix: "/" }
                          route: { cluster: service_backend }
  clusters:
    - name: service_backend
      connect_timeout: 2s
      type: STRICT_DNS
      load_assignment:
        cluster_name: service_backend
        endpoints:
          - lb_endpoints:
              - endpoint:
                  address:
                    socket_address: { address: backend, port_value: 8080 }

Follow-up Questions

  • What is the difference between Envoy and Istio?
  • How does xDS let Envoy update configuration without restarting?
  • What is outlier detection and how does Envoy implement it?
  • How does Envoy differ from a traditional reverse proxy like NGINX?

MCQ Practice

1. What mechanism does Envoy use to receive configuration dynamically?

Envoy subscribes to xDS (Listener, Route, Cluster, Endpoint Discovery Service) APIs, letting a control plane push config changes live.

2. Which of the following is Envoy typically deployed as?

Envoy commonly runs as a sidecar next to each service instance or as a standalone edge/ingress proxy.

3. What relationship does Envoy have with Istio?

Istio uses Envoy as its sidecar data plane, adding a control plane (istiod) on top to manage Envoy configuration via xDS.

Flash Cards

What is Envoy?A high-performance L4/L7 proxy handling networking, resilience, and observability for services.

How does Envoy get config?Dynamically via xDS APIs from a control plane, without restarting.

What relationship does Envoy have to Istio?Envoy is the data-plane sidecar proxy that Istio configures and manages.

Name two resilience features Envoy provides.Retries with backoff and circuit breaking / outlier detection.

1 / 4

Continue Learning