Cómo diseñar microservicios para entidades financieras

Existen distintas arquitecturas de software. Ninguna es mala o buena en sí. Todas tienen ventajas y desventajas a contemplar antes de aplicarlas en tu empresa.

Las soluciones tecnológicas de tu empresa financiera pueden no responder del todo a las demandas actuales. Mejorarlas aplicando nuevas arquitecturas de software, como la de los microservicios, puede ser un camino que promete no solo darte soluciones sino también generar valor para tu negocio y tus equipos de trabajo.

En este artículo te daremos una mirada integral sobre el diseño de este tipo de arquitecturas para la actividad bancaria.

Antes recuerda que puedes suscribirte al newsletter de Ginko y recibir contenidos exclusivos cada mes en tu correo.

¿Monolito o microservicio? Esa es la cuestión

Empezamos desde el principio. Un microservicio es un estilo arquitectónico de software donde el foco está puesto en crear pequeñas células autónomas que formen al conjunto operativo. Se caracterizan porque cada una tiene su propio proceso interno y puede comunicarse con el resto de la estructura sin un gran esfuerzo.

El término “microservicio” es relativamente nuevo y si desean ahondar en la teoría pueden buscar las conceptualizaciones de dos importantes referentes del campo: Martín Fowler y Chris Richardson

Un buen desarrollo de microservicio permite resolver requerimientos sin involucrar a todo el sistema. Busca entregar valor con la menor fricción posible y si una célula falla no compromete a toda la operación. Esto permite, por ejemplo, solucionar problemas individuales sin apagar por completo el servicio.

En la vereda de enfrente, la arquitectura de monolito, que fue desarrollada antes de los microservicios, es compacta y protege todas las funciones en un mismo circuito. Es literalmente un bloque

Imaginen un gran hotel antiguo de mil habitaciones. Allí el acceso y los servicios están unificados. Si algo falla, por ejemplo en el sistema de calefacción, la reparación demandará apagar y buscar el problema por cada artefacto y cañería. 

Un microservicio, en cambio, se asemeja más a un loteo de mil casas. Cada una tiene su acceso y sus servicios. Si la caldera en una de ellas se avería no afecta al resto.

Sin embargo, este tipo de desarrollo requiere de una planificación, ingeniería y diseño distinto al del gran hotel. Es una de las grandes leyes de la arquitectura: la complejidad no desaparece, solo se desplaza. 

Es importante entender que no todos los negocios están llamados a usar arquitecturas de microservicio o de monolito. Para eso estamos aquí: ofrecemos nuestra experiencia en crear soluciones eficientes para cada empresa.  

Qué ventajas tienen los microservicios

La arquitectura de microservicios posee tres valores que maximizan el flujo de valor y aportan a la estabilidad técnica de cualquier emprendimiento.

  • Escalabilidad. 
  • Resiliencia.
  • Menor esfuerzo cognitivo.

La primera se refiere a la plasticidad que permite modificar una función para dar una mejor respuesta a la demanda del usuario. Por ejemplo, sumarle más velocidad. De nuevo, este cambio no se trasladará al resto de la infraestructura. 

La segunda también toma su fuerza de la autonomía del microservicio. Por ejemplo, si la función destinada a las operaciones de cliente falla no afecta a todo el sistema.

La tercera nace de la accesibilidad que poseen estos diseños. Su dimensión demanda de un menor esfuerzo cognitivo para entenderlo y mejorarlo que si hubiese sido basado en un monolito. 

El microservicio vuelve más ágil al sistema y habilita que los cambios ocurran antes y con más frecuencia.

Te compartimos otro ejemplo: Imagina que deseas hacer una mejora de seguridad para el logueo de tu APi diseñada en base a una arquitectura de monolito. Entonces deberás bucear el sólido sistema donde están todas las funciones, desde las más grandes hasta las más pequeñas como la que modula el color del botón para hacer una transferencia. Si aplicas un microservicio el cambio de seguridad sería más sencillo y veloz. 

Qué se debe tener en cuenta para un microservicio bancario

Es cierto. Un microservicio resuelve problemas que los monolitos no pueden, pero no por arte de magia. Existen por el esfuerzo de quienes desde hace años crean diseños y permiten que haya patrones preexistentes que están probados y documentados, por ejemplo, por Chris Richardson en el libro «Microservices patterns».

También es importante recordar que los microservicios dependen del conjunto de prácticas y operaciones DevOps que alimentan el ciclo de vida del software y proporcionan un rendimiento de alta calidad. Demandan un grado de automatización y alineamiento de los equipos de trabajo. No basta con implementar un área de DevOps al que cada equipo le reclame soluciones. Se trata de entregar las herramientas para que puedan utilizar la plataforma y coordinar las acciones de forma eficiente evitando puntos vulnerables. Es un cambio cultural, tal como establece la Ley de Conway.

“Las organizaciones dedicadas al diseño de sistemas están abocadas a producir diseños que son copias de las estructuras de comunicación de dichas organizaciones”.
Melvin Conway

La transversalidad de ese cambio cultural en los equipos exige responsabilidad y compromiso con las prácticas. Echar mano a entornos de APis como Spring Boot o NodeJS para trabajar con microservicios no garantiza que las lógicas centralizadoras, al estilo de los monolitos, desaparezcan. Quizás un meme te ayude.

En nuestro recorrido profesional muchas bancas han incurrido en este error evitando enfrentar los problemas desde el diseño y quedando a merced del desarrollador de turno. 

Experiencia a disposición

Una de las claves en diseñar microservicios para empresas financieras y bancos es la trazabilidad. En las APis construidas a partir de monolitos siempre se sabe donde encontrar el error. Todo está concentrado. 

En las arquitecturas de microservicios su naturaleza distribuye las posibilidades y exige una logística a la altura de la circunstancia. Nadie puede pasar un día buscando resolver un problema.

No todos los negocios requieren de microservicios. No todas las empresas están listas para adaptarse al cambio que significa hacia adentro de sus organizaciones. No todos los desarrolladores pueden implementarlos sin arrastrar lógicas y errores de las arquitecturas de monolitos. Por eso, te recomendamos que conozcas cómo funciona la Plataforma de Servicios Digitales (PSD) de Ginko que permite la administración, gestión e integración de aplicaciones y servicios digitales bancarios. 

Así tu empresa puede dedicar sus recursos en resolver problemas de negocios en vez de trabajar en aspectos técnicos. 

Blog

¿Quieres descubrir qué puede hacer PSD por tu negocio?

Si has llegado hasta aquí significa que sientes que PSD puede ser ese punto de inflexión que necesita tu banco.
Como te decíamos más arriba, PSD te ayudará a terminar con las fricciones de tu organización para que unas mejores relaciones internas desemboquen en mejores soluciones para los clientes. El objetivo primordial es demostrar que es posible evolucionar a una banca diferente, en la que sea el cliente final quien tenga el poder.
CONVERSEMOS