Envoy
Un proxy de alto rendimiento para aplicaciones cloud-native
Envoy es un proxy extensible y de alto rendimiento creado para aplicaciones cloud-native. Opera tanto en la capa 3/4 como en la capa 7, y se encarga del balanceo de carga, el descubrimiento de servicios, los reintentos, el circuit breaking y la observabilidad del tráfico que fluye por él, y es el proxy de plano de datos que hay bajo la mayoría de los service meshes y API gateways modernos.
Cómo funciona
Envoy se despliega normalmente como sidecar junto a cada instancia de aplicación, o como un proxy de edge independiente. Se configura dinámicamente mediante un conjunto de APIs de descubrimiento (colectivamente “xDS”): un plano de control envía la configuración de listeners, rutas, clusters y endpoints, y Envoy la aplica sin reiniciarse. Esta separación entre un plano de datos rápido y de propósito general y un plano de control conectable es lo que permite a herramientas como Istio construir un service mesh completo sobre Envoy.
Conceptos clave
- Listener — una ubicación de red con nombre (una IP y un puerto) en la que Envoy acepta conexiones.
- Route (ruta) — configuración que compara las peticiones entrantes y decide qué cluster upstream las gestiona.
- Cluster — un grupo de endpoints upstream entre los que Envoy puede balancear el tráfico, junto con la configuración de health checking y de connection pool.
- APIs xDS — la familia de protocolos de descubrimiento (LDS, RDS, CDS, EDS y otros) que un plano de control usa para enviar configuración a Envoy dinámicamente.
Por qué los equipos adoptan Envoy
- Funciones ricas de capa 7. Soporte nativo de HTTP/2, gRPC, reintentos, timeouts, circuit breaking y reparto fino del tráfico.
- Observabilidad profunda. Métricas detalladas, logging y trazado distribuido están incorporados, no añadidos después.
- Configuración dinámica. Los cambios de enrutamiento y de endpoints se aplican sin reiniciar ni cortar conexiones.
- El sustrato común. Es la base de Istio, de varios API gateways y de muchos ingress controllers administrados, así que las habilidades se transfieren entre herramientas.
Primeros pasos
Envoy rara vez se ejecuta de forma independiente en un contexto de Kubernetes: la mayoría de los equipos lo conocen como el proxy sidecar de un service mesh como Istio, o como el motor detrás de un ingress controller o API gateway. Las guías siguientes cubren cómo configurar Envoy en esos contextos habituales.