Se prepar贸 una traducci贸n del art铆culo espec铆ficamente para estudiantes del curso de la Plataforma de Infraestructura Basada en Kubernetes .
Si ha seguido las tendencias en arquitecturas distribuidas y en la nube en los 煤ltimos a帽os, probablemente haya escuchado m谩s de una vez sobre microservicios. Aparecieron hace unos a帽os, y desde entonces su papel en las implementaciones corporativas en la nube solo ha crecido. Cada vez m谩s empresas est谩n cambiando a microservicios y declaran esto en sus publicaciones y comunicados de prensa.
Su elecci贸n est谩 justificada, pero solo unos pocos dicen qu茅 hay detr谩s de tal transici贸n. Con una implementaci贸n adecuada, los microservicios resuelven muchos problemas de la arquitectura monol铆tica: son f谩ciles de iterar y distribuir en grupos, y el c贸digo se divide f谩cilmente en componentes administrados. Sin embargo, en la mayor铆a de las publicaciones no hay una palabra sobre el trabajo posterior con microservicios y herramientas necesarias para su uso efectivo.
Hoy miramos detr谩s de escena y vemos qu茅 es una malla de servicios, c贸mo esta tecnolog铆a ayuda a resolver problemas de arquitectura de microservicios y simplifica el trabajo de los desarrolladores. Espero que tenga una idea detallada de su papel en las implementaciones de microservicios.
驴Qu茅 es una malla de servicio?
La malla de servicios (tambi茅n se utilizan los t茅rminos "red de microservicios", "red de microservicios de malla") es una capa abstracta de infraestructura que define la interacci贸n entre microservicios de una aplicaci贸n. La tecnolog铆a utiliza conexiones de red entre contenedores para controlar la interacci贸n de varios componentes de la aplicaci贸n. Suena bastante abstracto, pero de hecho es un concepto muy pr谩ctico. Los contenedores interact煤an a trav茅s de la red, por lo que cambiar la topolog铆a de la red le permite cambiar el orden en que interact煤an los contenedores.

La colaboraci贸n efectiva juega un papel clave en los microservicios. Gestionar esta interacci贸n con el servicio de malla proporciona muchos beneficios. Por lo tanto, cuando implementa nuevas versiones de componentes, puede cambiar instant谩neamente los dispositivos de red de los antiguos a los nuevos sin una configuraci贸n adicional. Si tiene dificultades con el escalado, puede usar la
malla de servicio para redirigir el tr谩fico a varios equilibradores de carga y aumentar la cantidad de contenedores para los componentes de la aplicaci贸n.
Un consejo popular para aquellos que comienzan a trabajar con microservicios es: tratar los diversos componentes de la aplicaci贸n como una API de proveedores completamente diferentes.
La tecnolog铆a de
malla de servicio le permite implementar este principio a nivel de red y determinar con precisi贸n qu茅 servicios estar谩n disponibles en varias ubicaciones de red. En caso de mover o modificar un servicio, en lugar de implementar una nueva configuraci贸n, es suficiente cambiar la interacci贸n de la red.
Que da
Los microservicios son populares por su amplia escalabilidad y son adecuados para trabajar con grandes aplicaciones que se pueden dividir en componentes f谩cilmente manejables. Las arquitecturas monol铆ticas, por el contrario, son convenientes en 谩reas donde la centralizaci贸n es importante. En aplicaciones monol铆ticas, es m谩s f谩cil registrar eventos, ya que se ejecutan en la misma ubicaci贸n. El control de versiones tambi茅n es sencillo, ya que se sobrescribe una 煤nica instancia. No es sorprendente que muchos desarrolladores se pierdan en la transici贸n de las arquitecturas monol铆ticas a las de microservicios, donde no existe una ubicaci贸n 煤nica para el registro en diario y es m谩s dif铆cil seleccionar las versiones necesarias de los componentes.

La ventaja de la tecnolog铆a de
malla de
servicios es que desempe帽a el papel de una fuente central de algunos datos, en particular datos sobre interacciones de red. Considere el ejemplo anterior de implementar una nueva versi贸n de un componente de aplicaci贸n. En lugar de destruir todos los contenedores que contienen la versi贸n anterior, iniciar nuevos contenedores con la nueva versi贸n y repetir este proceso para otros componentes relacionados, puede controlar qu茅 contenedores ser谩n visibles para otros contenedores en la red.
Esto significa que para implementar la nueva versi贸n, es suficiente simplemente especificar los nuevos contenedores como destino usando DNS, apuntar al nuevo equilibrador de carga o cambiar los contenedores a los que se dirige el equilibrador existente.
Al centrarse en las interacciones entre los componentes de la aplicaci贸n (en la red de malla en la que trabajan), puede mantener un cierto nivel de centralizaci贸n, lo que simplifica la administraci贸n en un entorno monol铆tico. 驴Necesita m谩s informaci贸n sobre el tr谩fico que pasa por la aplicaci贸n? Agregue capacidades de monitoreo a la red entre componentes. 驴Quieres mejorar la seguridad? Implemente cifrado fuerte y HTTPS. Todo esto es posible gracias a la
malla de servicio .
驴Quieres saber m谩s?
En las pr贸ximas semanas estudiaremos con m谩s detalle el funcionamiento de la red de malla y su aplicaci贸n pr谩ctica en algunos escenarios de implementaci贸n de microservicios. Nos centraremos en los beneficios reales de esta tecnolog铆a: control efectivo, capacidad de administraci贸n y la capacidad de monitorear los procesos de grandes aplicaciones.