Marcio Cunha

Service Mesh en Sistemas Legados: Integración de Protocolos TCP y No-HTTP

Entiende cómo implementar Service Mesh en infraestructuras que dependen de protocolos legados o no-HTTP, superando limitaciones de conectividad y observabilidad.

Marcio Cunha•2 min
También disponible en:EnglishPortuguês
Resumen
  • La implementación de Service Mesh en protocolos no-HTTP requiere la abstracción del tráfico en la capa de transporte L4.
  • El uso de sidecars basados en Envoy permite interceptar conexiones TCP sin necesidad de parsing de aplicación.
  • Protocolos propietarios pueden perder visibilidad detallada de peticiones, pero ganan rastreo de latencia y salud de red.
  • La topología de red debe considerar la latencia introducida por el proxy en sistemas de baja latencia.
  • La migración hacia una malla de servicios en sistemas legados funciona mejor como un proceso incremental y aislado.

Desafíos de la Interoperabilidad en Sistemas Legados

Cuando hablamos de Service Mesh, la mente humana suele dirigirse rápidamente a HTTP y gRPC, protocolos basados en texto o serialización que facilitan mucho la visibilidad. Sin embargo, el mundo real de la ingeniería a menudo depende de sistemas legados que ejecutan protocolos TCP puros, binarios propietarios o incluso sistemas de mensajería de baja latencia. Integrar estos entornos a una malla de servicios exige un salto técnico importante: dejar de mirar el contenido del paquete y centrarse en el tráfico como un flujo de bits.

Abstracción en la Capa de Transporte (L4)

La estrategia central aquí es el uso de filtros L4 (Capa de Transporte del modelo OSI). A diferencia del L7 (Capa de Aplicación), donde el proxy 'lee' la petición, el filtro TCP de Envoy actúa simplemente como un túnel inteligente. No sabe si es una transacción financiera o un comando de automatización industrial, pero logra medir con precisión cuándo comenzó la conexión, cuánto duró y si el paquete llegó a su destino. Esto garantiza telemetría básica sin corromper el dato original.

Implementación de Sidecars para Tráfico No-HTTP

Al configurar un Sidecar —el contenedor auxiliar que corre junto a tu aplicación— necesitamos definir listeners específicos que no esperen un handshake HTTP. En el archivo de configuración de Envoy, usamos el tcp_proxy en lugar del http_connection_manager. Esta configuración garantiza que el tráfico sea enrutado de forma transparente. En la práctica, esto significa que tu sistema legado no percibe que existe un 'intermediario' monitoreando la salud de la conexión.

Limitaciones y Trade-offs de Rendimiento

No existe el almuerzo gratis. Agregar un proxy en sistemas de alto rendimiento o con protocolos sensibles al tiempo introduce un salto de milisegundos. Si tu sistema legado depende de un polling muy frecuente, la latencia del 'hop' extra puede causar timeouts. Es fundamental evaluar si el beneficio de la observabilidad centralizada compensa el costo de rendimiento. En infraestructuras legadas, a menudo la mejor decisión es realizar el proxy solo en el borde de la red, protegiendo el núcleo crítico.

Enrutamiento y Seguridad en Flujos TCP

Un beneficio real de llevar el legado a la malla es el mTLS (Mutual TLS). Con él, puedes forzar el cifrado entre dos servicios que antes se comunicaban en texto plano dentro de la red interna. El sidecar asume la carga de la negociación de certificados, eliminando la necesidad de tocar el código legado. Esto transforma una red insegura en un entorno protegido por claves, sin tocar una sola línea de código de la aplicación original.

Consideraciones Finales

La implementación de Service Mesh en sistemas legados no debe ser una tentativa de 'modernizar' el protocolo, sino de 'envolver' el comportamiento de red. Al aislar el transporte, obtienes control operacional sobre sistemas que antes eran cajas negras. El éxito de esta transición depende menos de la tecnología en sí y más del mapeo cuidadoso de cómo cada servicio legado se comporta ante fallos de red.