Artículos
5
min de lectura
8 de septiembre de 2020

Service Mesh es un bloque de construcción esencial para aplicaciones empresariales modernas – aquí está el por qué

Gibson Pasquini Nascimento
Head de Soluciones, EMEA
Con sede en Dublín. Con más de 14 años de experiencia en Software Desarrollo, metodologías ágiles y arquitectura. Soy un experto en APIs y he trabajado en múltiples industrias (Retail, Pharma, Health Insurance, Banking y algunas otras) para apoyar el cambio de enfoque de integración y estrategia de API.
Más sobre el autor

Publicado originalmente en Computing.co.

Haga clic aquí para comprobarlo

Las aplicaciones nativas de la nube son una colección de servicios vagamente acoplados - y alguien tiene que mantener abiertos los canales de comunicación. Entra en el service mesh

Un service mesh se considera cada vez más un bloque de construcción esencial para las organizaciones que desean supervisar, gestionar y controlar sus comunicaciones de servicio a servicio. Este modelo de red (también descrito como capa de infraestructura), que es un componente fundamental de la pila nativa de la nube, mejora la capacidad de respuesta, el rendimiento y la fiabilidad de online . Permite, entre otras capacidades, la comunicación entre servicios complejos que soportan las modernas aplicaciones nativas de la nube.

En estas aplicaciones, puede haber cientos de servicios con miles de variaciones que cambian constantemente cuando se orquestan en una plataforma como Kubernetes. Un service mesh utiliza herramientas de enrutamiento dinámico para conectarse al servicio correcto y encontrar la fuente de información que históricamente ha proporcionado la respuesta más rápida. Si esa fuente no responde, el service mesh encuentra otra fuente; si se devuelve un error, elimina la fuente del conjunto de equilibrio. Si no se cumple el plazo de la solicitud, registra una "solicitud fallida" en lugar de loading el sistema con más reintentos, lo que evita que se bloquee.

Al automatizar las comunicaciones entre las diferentes partes de la aplicación, Service Mesh mejora el tiempo de funcionamiento, el rendimiento y la resistencia de la aplicación en su conjunto.

La evolución del Service Mesh

¿Cómo ha evolucionado esta herramienta, que utiliza aplicaciones web para gestionar las comunicaciones entre servicios?

En 1992, uno de los primeros modelos de arquitectura de software (todavía muy utilizado hoy en día), fue el patrón Modelo Vista Controlador (MVC). Los cambios en los patrones de distribución dieron lugar a la Arquitectura Orientada a Servicios (SOA) en 2000 y a event-driven architecture en 2003. Diez años después, cuando el desarrollo de software requería soluciones más robustas y escalables, llegaron los microservicios, seguidos de las plataformas sin servidor en 2015.

Sin embargo, seguía existiendo una tendencia a desarrollar aplicaciones basadas en procesos que reflejaban las estructuras de comunicación basadas en silos de las organizaciones. Es cierto que software estaba dividido en piezas más pequeñas (los microservicios individuales), pero también había más cantidad distribuida en más sistemas. Estas piezas más pequeñas de software y las comunicaciones entre ellas son más complejas de manejar, y ahí es donde entra service meshes .

Un service mesh funciona apoyando la comunicación entre procesos (IPC), el mecanismo que utiliza un sistema operativo para gestionar y compartir datos.

Aborda todas las cuestiones de red que los desarrolladores normalmente tienen que tener en cuenta al implementar un microservicio, por ejemplo, el equilibrio de carga, los disyuntores, los reintentos, los tiempos de espera y el enrutamiento inteligente, y permite técnicas de despliegue avanzadas, como el canario releases y los lanzamientos oscuros. De este modo, service mesh elimina la necesidad de codificar la aplicación de la infraestructura, dando a los desarrolladores más tiempo para centrarse en la lógica empresarial.

La telemetría es otra de las características de service meshes; la actividad se observa y registra mediante métricas y se carga en una base de datos central. Algunas soluciones de service mesh se integran con las herramientas de vigilancia de software , y también pueden sustituir a las bibliotecas de comunicación que se utilizan normalmente para manejar el equilibrio de la carga, la latencia, la tolerancia a los fallos y los problemas de la red de conmutación por error.

Norte, Sur, Este, Oeste

A pesar de que service meshe es perfecto para manejar la comunicación entre servicios, a menudo compleja y variada (también conocida como tráfico este-oeste), las solicitudes originadas en redes externas, por consumidores de API expuestas (tráfico norte-sur), deben ser manejadas por un API gateway. Este último proporciona la seguridad, el control de acceso y las capacidades de gestión necesarias para proteger la infraestructura interna.

No existe una solución milagrosa para resolver los problemas tecnológicos de todas las organizaciones, pero los arquitectos y desarrolladores de software tienen ahora acceso a nuevas herramientas para apoyar el ciclo de vida de desarrollo de software .

Y a medida que más empresas migran a una arquitectura de microservicios, organizando su software en torno a sus capacidades en lugar de silos basados en procesos, service meshes será cada vez más necesario para ayudar a las aplicaciones a evolucionar en línea con el crecimiento del negocio.

¡Gracias por leer!