Envoy je L7 proxy a komunikační bus pro velké moderní service-oriented architektury. Vytvořil ho Lyft, je základem Istio a Ambassador. A my ho používáme i standalone.
Proč Envoy místo nginx¶
nginx je skvělý webový server. Ale pro service mesh a mikroslužby potřebujete: dynamic configuration (bez reloadu), gRPC nativní podpora, distributed tracing integrace, advanced load balancing, circuit breaking. Envoy tohle vše má nativně.
Envoy jako edge proxy¶
Envoy nahradil nginx jako náš edge proxy. Automatický TLS termination s Let’s Encrypt, HTTP/2 downstream, gRPC-JSON transcoding, rate limiting, JWT validace — vše v jednom binárce.
xDS API — dynamic configuration¶
Envoy se konfiguruje dynamicky přes xDS API. Nová služba v clusteru? Control plane updatuje Envoy konfiguraci bez restartu. V Kubernetes to řeší Istio Pilot nebo standalone control plane jako go-control-plane.
Load balancing strategie¶
- Round robin: základní, funguje pro homogenní backend
- Least request: posílá na backend s nejméně aktivními requesty
- Ring hash: consistent hashing pro sticky sessions
- Zone-aware: preferuje backend ve stejné AZ
Envoy je standard pro cloud-native networking¶
Ať už jako standalone edge proxy, sidecar v service mesh, nebo základ pro API gateway — Envoy je nejflexibilnější proxy na trhu.