Definición: Capa de infraestructura dedicada a gestionar la comunicación entre microservicios, proporcionando observabilidad, gestión de tráfico y seguridad sin modificar el código de las aplicaciones.
— Fuente: NERVICO, Consultoría de Desarrollo de Producto
Qué es un service mesh
Un service mesh es una capa de infraestructura dedicada a gestionar la comunicación entre servicios en una arquitectura de microservicios. Se implementa como un conjunto de proxies ligeros (sidecars) desplegados junto a cada instancia de servicio, que interceptan y gestionan todo el tráfico de red entre servicios. Herramientas como Istio, Linkerd y Consul Connect son implementaciones populares.
La premisa fundamental es que la lógica de comunicación (reintentos, circuit breaking, cifrado, observabilidad) se extrae del código de la aplicación y se delega a la infraestructura.
Cómo funciona
Cada servicio recibe un proxy sidecar que intercepta todas las comunicaciones entrantes y salientes. Estos proxies forman una malla (“mesh”) que gestiona el tráfico de forma transparente para las aplicaciones. Un plano de control centralizado configura y coordina todos los proxies, definiendo políticas de enrutamiento, seguridad y observabilidad.
Cuando el servicio A necesita comunicarse con el servicio B, la petición pasa por el proxy sidecar de A, que aplica las políticas configuradas (cifrado mTLS, reintentos, timeouts), la envía al proxy de B, que la entrega al servicio. Todo esto ocurre sin que el código de la aplicación intervenga.
Por qué importa
A medida que una arquitectura de microservicios crece, gestionar la comunicación entre decenas o cientos de servicios se vuelve inmanejable desde el código de cada aplicación. El service mesh estandariza y centraliza esta complejidad, proporcionando visibilidad completa del tráfico, cifrado automático entre servicios y mecanismos de resiliencia consistentes.
Ejemplo práctico
Una plataforma con 40 microservicios implementa Istio como service mesh. Sin cambiar una sola línea de código en los servicios, el equipo obtiene cifrado mTLS entre todos los servicios, dashboards de latencia y tasa de errores para cada comunicación, circuit breaking automático cuando un servicio degrada, y la capacidad de hacer canary deployments dirigiendo el 5% del tráfico a nuevas versiones.