De monolitico a microservicios
Enviado por Paul Velasco • 11 de Octubre de 2022 • Ensayo • 2.461 Palabras (10 Páginas) • 68 Visitas
De monolítico a microservicios
Este informe de experiencia de un estudio de caso del mundo real del dominio bancario demuestra cómo la reimplementación de una arquitectura monolítica en microservicios mejora la escalabilidad. El estudio de caso se basa en el sistema de conversión de divisas FX Core de Danske Bank.
[pic 1]
LOS MICROSERVICIOS (1–3) SON UN estilo arquitectónico que se originó a partir de la arquitectura orientada a servicios (SOA),4 con la idea de traer a lo pequeño (dentro de una aplicación) aquellos conceptos que funcionaron en lo grande, es decir, para negocios entre organizaciones. -al flujo de trabajo empresarial. El cambio hacia los microservicios es un tema delicado en estos días, ya que varias empresas están involucradas en una importante refactorización de sus sistemas de back-end para adaptarse a las ventajas del nuevo paradigma. Este es el caso del sistema y la institución considerados en este artículo, es decir, el FX Core de Danske Bank. (FX significa cambio de divisas, que también se denomina forex. Es el intercambio de divisas, es decir, la conversión de una divisa a
otro.)
En arquitecturas monolíticas, las abstracciones de modularización se basan en compartir recursos de la misma máquina (memoria, bases de datos o archivos) y, por lo tanto, los componentes no son ejecutables de forma independiente. Un problema notable de los monolitos involucra la escalabilidad y, en general, todos los aspectos relacionados con el cambio.5 En el paradigma de microservicio, un sistema se estructura componiendo pequeños bloques de construcción independientes, cada uno con una herramienta de persistencia dedicada y comunicándose exclusivamente a través del paso de mensajes. En este tipo de organización, la complejidad se traslada al nivel de coordinación de servicios.
Se espera que cada microservicio implemente una única capacidad comercial (de hecho, una funcionalidad de sistema muy limitada) que brinde beneficios en términos de escalabilidad del servicio. Dado que cada microservicio representa una capacidad comercial única, que se entrega y actualiza de forma independiente, descubrir errores o agregar mejoras menores no tiene ningún impacto en otros servicios ni en sus versiones. En la práctica común, también se espera que un solo equipo pueda desarrollar y administrar un solo servicio.2,6 La idea de tener un equipo trabajando en un solo microservicio es bastante atractiva: construir un sistema con un sistema modular y débilmente acoplado. diseño, debe prestar atención a la estructura de la organización y sus patrones de comunicación porque, de acuerdo con la ley de Conway, 7 impactan directamente en el diseño producido. Entonces, si creas una organización con cada equipo trabajando en un solo servicio, esa estructura hará que la comunicación sea más eficiente no solo a nivel de equipo sino también dentro de toda la organización, mejorando el diseño resultante en términos de modularidad.
Los microservicios no son solo otro nombre para SOA. De hecho, hay algunas diferencias notables. En SOA, no es necesario que los servicios sean autónomos, con datos, una interfaz de usuario y sus propias herramientas de persistencia, por ejemplo, una base de datos.
SOA no se centra en las unidades de implementación independientes y las consecuencias relacionadas; es simplemente un enfoque para la intercomunicación de empresa a empresa. La idea de SOA era permitir la programación de nivel empresarial a través de motores de procesos empresariales y lenguajes como WS-BPEL (Lenguaje de ejecución de procesos empresariales de servicios web) y BPMN (Modelo y notación de procesos empresariales) que se construyeron sobre la vasta literatura sobre negocios. modelado. 8 Además, todo el énfasis estaba puesto en la orquestación de servicios más que en el desarrollo y la implementación de servicios.
En este artículo, informamos la experiencia de migración de monolítico a microservicios del sistema FX Core de Danske Bank. La documentación de la arquitectura del sistema original era escasa y la gran mayoría de los detalles técnicos se obtuvieron mediante conversaciones y entrevistas directas con el equipo de FX Core y mediante la inspección manual del código fuente.
Proceso de Migración
El proceso de migración fue impulsado por el negocio y de afuera hacia adentro; es decir, el sistema fue diseñado e implementado una funcionalidad comercial a la vez.
Las funcionalidades comerciales se definieron principalmente mediante la comunicación con las partes interesadas (comerciantes de FX) y se agregaron iterativamente según el nivel de prioridad para el negocio en sí. Consideramos caso por caso si una funcionalidad debería resultar en un nuevo servicio o no. Si la funcionalidad comercial parecía aislada y lo suficientemente grande, o si se compartía con muchas otras funcionalidades comerciales, el resultado era un nuevo servicio. En algunos casos, es posible que algunas funcionalidades se hayan incluido inicialmente juntas en un servicio y luego se hayan trasladado a sus propios servicios separados. Por ejemplo, esto ocurría cuando la funcionalidad era demasiado grande o múltiples servicios la requerían por igual.
Uno de los beneficios de este enfoque es que ha distanciado al equipo de la implementación anterior, lo que dificulta la posibilidad de volver a implementar todo como un monolito distribuido.
Sistema central FX de Danske Bank
FX abarca todo, desde transacciones privadas realizadas en países extranjeros (por ejemplo, compras por Internet desde el extranjero y el uso de tarjetas de crédito mientras viaja) hasta corporaciones que mueven sus activos financieros de una moneda a otra y exportan o importan productos hacia y desde mercados extranjeros.
FX ha crecido con la globalización y ahora es el mercado financiero más grande del mundo, con un volumen de transacciones diario promedio de aproximadamente cinco billones de dólares. Esto da como resultado que algunas transacciones alcancen cientos de millones de dólares. A diferencia de la bolsa de valores, no existe un mercado centralizado. En cambio, FX está descentralizado y se realiza sin receta; es decir, los comerciantes negocian precios y comercian directamente entre ellos. Los comerciantes suelen ser los bancos multinacionales más grandes, que comercian en nombre de sus clientes o de ellos mismos. Además, debido a la naturaleza descentralizada y global de FX, el mercado está abierto las 24 horas del día, los cinco días de la semana.9
El sistema FX IT (ver Figura 1) es parte del departamento de Empresas e Instituciones (C&I) del banco y actúa como una puerta de enlace entre los mercados internacionales y los clientes y comerciantes de Danske Bank. Los clientes de C&I son principalmente grandes instituciones financieras y grandes corporaciones multinacionales. El sistema FX Core es parte de FX IT; maneja transacciones y verificaciones de línea, es decir, verifica si un cliente tiene la garantía financiera (por ejemplo, acciones, bonos o efectivo) para realizar una transacción y cómo afectará una transacción a esa garantía. Esto incluye el registro, la validación y la gestión posterior a la negociación.
...