La tecnología ocupa un lugar cada vez más central en las operaciones financieras. Mientras el ecosistema fintech experimenta un crecimiento exponencial, los bancos responden adaptando su oferta a usuarios acostumbrados al mundo digital. En este marco, el software utilizado para gestionar sus operaciones puede representar un obstáculo o una oportunidad. Entonces, ¿Por qué los microservicios son el presente y el futuro de la banca?
¿Cómo incide la arquitectura de software en los negocios? ¿Qué son los microservicios? ¿Cómo pueden contribuir con el desarrollo de bancos y fintechs en Latinoamérica?
Invitamos a contactarnos para más detalles acerca de nuestros productos, soluciones, servicios y suscripción a nuestro contenido exclusivo para la industria financiera
El pasado: la arquitectura monolítica
Tradicionalmente, el software se ha diseñado siguiendo una arquitectura monolítica. Es decir, una estructura robusta, consolidada, en la que todos los aspectos funcionales se acoplan entre sí. En estos sistemas, toda la información se aloja en un único servidor, por lo que no existe separación entre los distintos módulos.
El problema de estas plataformas es que las diferentes partes de un “programa” están estrecha y estrictamente vinculadas. Entonces, el hecho el querer realizar una modificación en una sección particular obliga a los desarrolladores a crear una versión completamente nueva, con el gasto de recursos que ello involucra.
La arquitectura monolítica, durante mucho tiempo, fue la alternativa imperante. Y, en ciertas situaciones, puede resultar eficiente debido que – gracias a su entorno bien definido – implica un leve margen de fallas. Sin embargo, su rigidez presenta importantes obstáculos: no sólo demanda grandes esfuerzos para escalar, sino también para integrar nuevas funcionalidades que den respuesta a las necesidades coyunturales. Además, en un contexto como el actual, estas estructuras tienen enormes dificultades para comunicarse con apps y servicios de terceros.
En la banca, este es el caso de los sistemas legacy, que – hoy – reflejan los problemas de actualización, integración, escalabilidad y mantenimiento que este tipo de estructura trae consigo.
El presente: los microservicios
Como respuesta a estas limitaciones – que lejos de ser exclusivas de la banca, se encuentran en softwares de diversas industrias -, nacieron los microservicios. Su nombre lo indica: en este caso, la arquitectura de una aplicación o plataforma se compone por un conjunto de pequeños servicios, que se ejecutan de manera independiente y autónoma.
Cada uno de ellos está diseñado para un conjunto de capacidades y se enfoca en resolver un problema específico. Tiene un código independiente, que incluso puede estar desarrollado en un lenguaje de programación diferente al de otros. A su vez, cuenta con un sistema de almacenamiento propio, lo que evita la sobrecarga de la app y acelera los tiempos de consulta.
Ahora bien, ¿Cómo se integran estos pequeños servicios para dar forma a un sistema más complejo? La respuesta son las APIs, que favorecen – a través de distintos protocolos y rutinas – la comunicación entre ellos.
De esta forma, los microservicios han creado infraestructuras IT que responden mejor a las necesidades actuales de las empresas. Sintetizamos los beneficios más notables:
Adaptación y flexibilidad
Los microservicios se organizan en torno a las necesidades, capacidades y prioridades del negocio en el que se implementan. Y cada uno se desarrolla en el lenguaje de programación más apto para su desempeño. Por último, al ser autónomos, si se quiere modificar solamente un servicio, no es necesario alterar el resto de la estructura.
Implementación
Permiten la integración y la entrega continuas, lo que facilita probar nuevas ideas y revertirlas si algo no funciona. El bajo costo de los errores permite experimentar, facilita la actualización del código y acelera el tiempo de comercialización de las nuevas características.
Escalabilidad
Permiten que cada servicio escale de forma independiente para satisfacer una demanda característica, respondiendo ágil y rápidamente al requerimiento. Además, si un servicio se torna complejo, puede dividirse en otros más pequeños.
Resistencia al error
En una arquitectura monolítica, un error en un solo componente puede provocar un error en toda la aplicación. Con los microservicios, si aparece un error en todo el servicio, las aplicaciones lo manejan degradando la funcionalidad sin bloquear toda la aplicación.
Mantenimiento
Como ya hemos visto, puede realizarse sobre un servicio específico mientras los demás continúan con su operatoria.
Integración
A través de APIs, pueden comunicarse ágilmente con servicios propios o de entidades externas.
El futuro: desafíos para la banca
Mientras empresas como eBay, Amazon y Netflix han hecho una fuerte apuesta a la arquitectura de microservicios, la tendencia también se hace notar en el sector bancario. Las entidades internacionales de mayor volumen transaccional hicieron públicos sus avances en este sentido. Sin embargo, en Latinoamérica, aún estamos dando los primeros pasos.
Ahora bien, en nuestra región, esta tecnología es una gran respuesta para muchas de las necesidades del sector financiero. En primer lugar, frente a los riesgos que implica reemplazar los viejos sistemas legacy, los microservicios favorecen una migración progresiva. Se desarrollan nuevos servicios, que se integran al core ya implementado, sustituyendo funcionalidades sin limitar la capacidad de operar.
En segundo lugar, en conjunto con protocolos de Open Banking, favorecen la integración de bancos y fintechs al ecosistema financiero, conformado por cada vez más actores. De esta forma, se facilita la obtención de información en procesos como validaciones de identidad y obtención de scoring crediticios, entre otros.
Por último, como ya mencionamos, los microservicios ofrecen una rápida respuesta frente a las necesidades del entorno. Entonces, las nuevas demandas del mercado se traducen en nuevas funcionalidades que se implementan con agilidad.
Las ventajas son muchas. Pero este tipo de arquitectura también presenta un gran desafío: gestionar un gran número de servicios, integrarlos y gestionarlos puede resultar muy complejo. La fragmentación de una aplicación en diferentes partes involucra horas de planificación y requiere de la labor de arquitectos experimentados, que determinen la estructura adecuada.