Service Mesh
Capa de infraestructura dedicada a gestionar la comunicación entre microservicios, proporcionando observabilidad, seguridad y control de tráfico de forma transparente.
seed#service-mesh#istio#envoy#networking#microservices#observability
¿Qué es?
Un service mesh es una capa de infraestructura que gestiona la comunicación entre microservicios de forma transparente. Cada servicio tiene un proxy sidecar que intercepta todo el tráfico de red, proporcionando observabilidad, seguridad y control sin modificar el código de la aplicación.
Capacidades
| Capacidad | Qué resuelve | Sin mesh | Con mesh |
|---|---|---|---|
| Observabilidad | Visibilidad del tráfico | Instrumentar cada servicio manualmente | Métricas, traces y logs automáticos |
| Seguridad | Cifrado entre servicios | Configurar TLS en cada servicio | mTLS automático, rotación de certificados |
| Control de tráfico | Deploys seguros | Todo o nada | Canary, traffic splitting, circuit breakers |
| Políticas | Gobernanza | Implementar en cada servicio | Rate limiting y access control centralizados |
Implementaciones
| Service Mesh | Proxy | Características |
|---|---|---|
| Istio | Envoy | El más completo, complejo |
| Linkerd | linkerd2-proxy | Ligero, simple |
| AWS App Mesh | Envoy | Integración AWS nativa |
| Consul Connect | Envoy | Multi-plataforma |
¿Cuándo necesitas un service mesh?
- Muchos microservicios (>10) comunicándose entre sí
- Necesitas mTLS entre servicios
- Requieres observabilidad detallada del tráfico
- Canary deployments o traffic splitting
¿Por qué importa?
Un service mesh gestiona la comunicación entre microservicios de forma transparente: mTLS, circuit breaking, observabilidad y traffic management sin modificar el código de la aplicación. Es la capa de red que hace operables los sistemas distribuidos complejos.
Referencias
- Istio Documentation — Documentación oficial.
- Linkerd — Service mesh ligero.
- Envoy Proxy — CNCF, 2024. Proxy de alto rendimiento usado por la mayoría de service meshes.