Por qué los microservicios necesitan una arquitectura basada en eventos

Los microservicios prometen ayudar a romper las aplicaciones monolíticas y permitir la entrega consistente de servicios. Pero no pueden hacer el trabajo sin ayuda. Aquí es donde entra en juego la arquitectura dirigida por eventos (EDA).

paisaje urbano-el-barco-hudson-yards-nyc-dic-2021-photo-by-joe-mckendrick.jpg

Foto: Joe McKendrick

En las siguientes preguntas y respuestas, Jonathan Schabowsky, CTO de campo de Solace, brinda una mayor comprensión de la creciente convergencia de microservicios con EDA. y argumenta que una verdadera comprensión será esencial para las organizaciones que buscan aprovechar al máximo sus aplicaciones comerciales basadas en microservicios.

P: ¿Cómo ve la industria en términos de adopción de microservicios?

Schabowsky: Estamos viendo que se están incorporando más microservicios en proyectos de transformación, descomponiendo aplicaciones monolíticas en servicios autónomos e implementados de forma independiente. El último estudio de O’Reilly muestra que el 61% de las empresas han adoptado microservicios. Sin embargo, según mi experiencia, solo un pequeño subconjunto de esas empresas ha podido incorporar microservicios basados ​​en eventos en ese trabajo.

P: La encuesta también sugiere que cerca del 40 % aún no ha adoptado los microservicios de manera profunda. ¿Qué está en cuestión?

Schabowsky: La aplicación de microservicios es, por supuesto, más compleja de lo que parece. De hecho, trae consigo muchos problemas: puede ser frágil y no coincidir bien con los ecosistemas heredados existentes. No todos los microservicios son idénticos y no siempre ofrecen la escalabilidad y la agilidad mejoradas que se prometen.

Una barrera importante es la paradoja de la descomposición del servicio: cuanto más pequeños son los microservicios, más servicios se requieren, lo que genera problemas de estabilidad y rendimiento debido a los problemas típicos de los sistemas distribuidos, como la latencia de la red. Debido a esto, la experiencia del usuario también puede verse afectada. Existe un equilibrio entre la descomposición y una arquitectura que minimiza la latencia y maximiza el rendimiento.

P: ¿La integración heredada presenta un desafío para cumplir con una arquitectura de microservicios?

Schabowsky: Aquí está la desconexión: muchos sistemas existentes viven en las instalaciones, mientras que los microservicios pueden vivir en nubes públicas y privadas. La capacidad de los datos para transitar por redes de área amplia, que a menudo son inestables e impredecibles, puede ser complicada y consumir mucho tiempo. Agregue a eso los desafíos que está creando Internet de las cosas, big data, dispositivos móviles. Esto crea riesgos significativos para las iniciativas de microservicios.

Los sistemas más antiguos no son rápidos ni fáciles de actualizar, pero, por otro lado, los microservicios deben ser rápidos y flexibles. Las implementaciones más antiguas se basan en protocolos de comunicación obsoletos, mientras que los microservicios se basan en API y protocolos abiertos. La mayoría de los sistemas heredados se implementarán en las instalaciones, mientras que la mayoría de los microservicios viven en la nube. Los sistemas más nuevos, como las redes IoT, usan protocolos altamente especializados, pero la mayoría de las API y los marcos de microservicios no los admiten como estándar. La arquitectura basada en eventos aborda estos desajustes entre los sistemas heredados y los microservicios.

P: Describa cómo funciona una arquitectura basada en eventos en una configuración de microservicios.

Schabowsky: EDA lleva los datos de estáticos a fluidos. Por ejemplo, atascado, en reposo en una base de datos bloqueada debajo de una API para estar completamente en movimiento, consumible a medida que ocurren eventos críticos para el negocio en tiempo real. Los microservicios RESTful por sí solos no son suficientes.
P: Danos un ejemplo de una arquitectura basada en eventos en el trabajo.
Schabowsky: Imagine implementar una campaña de marketing para una nueva tarjeta de crédito ofrecida por un banco. Con un EDA, puede digerir más fácilmente los eventos de creación de cuentas, como abrir saldos y direcciones, y usar los metadatos en los esfuerzos de marketing de seguimiento. Otras empresas pueden, al combinar EDA y microservicios, construir sistemas altamente distribuidos, escalables, disponibles, tolerantes a fallas y extensibles que son capaces de consumir, procesar, agregar y correlacionar grandes cantidades de eventos o información, en tiempo real.
Las plataformas de eventos modernas también deben ayudar a la automatización de DevOps y proporcionar un proceso de autoservicio casi completo para los desarrolladores. Las empresas deben poder seguir la corriente en un mundo que cambia rápidamente. Necesitan aplicaciones que puedan adaptarse a sus necesidades, y los microservicios basados ​​en eventos lo permiten.

P: ¿Qué pasa con las herramientas para microservicios basados ​​en eventos? ¿Está listo?

Schabowsky: Las herramientas están implementadas para microservicios de solicitud/respuesta síncrona, pero desafortunadamente la recopilación de datos y la comunicación se han descuidado en gran medida, lo que ha significado que las herramientas para interacciones asincrónicas impulsadas por eventos entre microservicios ahora están muy rezagadas. Muchas puertas de enlace y mallas de servicio o soluciones de gestión de API se han centrado en patrones de intercambio de solicitud/respuesta sincrónicos. El problema es que estas herramientas no se integran con los sistemas heredados.

Las herramientas de eventos/mensajes que hemos visto históricamente no son compatibles con los enfoques de desarrollo ágiles de hoy en día y no funcionan bien en DevOps o entornos de autoservicio. Pero son los eventos/mensajes los que manejan mejor las características de la computación distribuida. Esa falta de herramientas de eventos/mensajería impide que las organizaciones adopten el pensamiento basado en eventos y utilicen la arquitectura basada en eventos para desbloquear el potencial de la arquitectura de microservicios.

P: ¿Es aquí donde entra la orquestación?

Schabowsky: Como mencioné con la paradoja de la descomposición del servicio, cuanto más pequeño es el servicio, menos valor ofrece discretamente al usuario final. El verdadero valor proviene de la orquestación de estos microservicios. Piense en los compositores que crean partituras musicales que involucran una amplia gama de instrumentos. Luego piense en cada partitura y músico como un microservicio, como parte de una sinfonía compleja. Tal orquestación es necesaria en una empresa con muchas aplicaciones complejas. Un microservicio puede producir un evento, pero no controla cuándo se procesará; esto depende de otros servicios. Esto requiere orquestación de microservicios.

Deja un comentario