es

¿Cómo funciona?

¿Necesita ayuda para los negocios?

Contáctenos para una cotización personalizada de FinMV adaptada a sus necesidades.

¿Monolítico o microservicio?

El director técnico de su empresa, a la hora de planificar el lanzamiento de una plataforma financiera, deberá elegir una opción de arquitectura de proyecto. ¿Qué opciones de arquitectura están disponibles para él y cuál es mejor elegir?

Opción 1. Arquitectura monolítica (monolito)

Una arquitectura monolítica es como una bola de nieve. Empiezas un proyecto y tienes una pequeña bola de nieve. Es tan pequeño que puede ser desarrollado y lanzado por un pequeño equipo. Pasan un par de años y ahora su bola de nieve se ha vuelto tan grande que 20 desarrolladores ya la están impulsando. En un par de años más, cientos de desarrolladores harán rodar su bola de nieve con un montón de código, pero el lanzamiento de nuevas funciones será muy lento.

Como resultado, los propietarios comienzan a cambiar el director técnico, los miembros del equipo, pero solo empeora. Los nuevos integrantes del equipo desconocen los detalles históricos, por qué la bola de nieve es como es y no otra. La documentación del producto queda obsoleta rápidamente.

¿Por qué no hacerlo bien desde el principio? En primer lugar, al comienzo de un negocio, siempre hay recursos limitados, no hay suficientes desarrolladores, experiencia y tiempo. El manual es urgente, y los programadores tienen prisa por hacerlo de la forma más rápida posible.

En segundo lugar, los ingenieros técnicos piensan: "Bueno, que sea una arquitectura monolítica por ahora, pero cuando el negocio crezca, reharemos todo". Desafortunadamente, en realidad, transferir un proyecto monolítico existente a una arquitectura de microservicio será diez veces más difícil que escribir todo desde cero.

Opción 2. Arquitectura de microservicios

Haremos que su plataforma financiera se base inmediatamente en la arquitectura de microservicios.

La arquitectura de microservicios se puede comparar con losas de pavimento en senderos. A medida que crece su proyecto, se agregan más mosaicos a su pasarela. Si un componente está desactualizado, basta con reemplazar este mosaico por uno nuevo.

Esta arquitectura tiene muchas ventajas, pero nombraré las más importantes:

  • los empleados individuales son responsables del funcionamiento de cada microservicio
  • se evita el robo del código del proyecto, ya que los desarrolladores solo tienen acceso a una parte del código
  • cuando salen las actualizaciones del lenguaje de programación, puede arreglar el código de programa de cada servicio uno por uno

Ejemplos de la vida real

Primer ejemplo. La gestión de una plataforma de préstamos P2P con una gran cantidad de usuarios decidió ingresar a los mercados de países con una moneda diferente. La plataforma tenía una arquitectura monolítica e incluía solo una moneda: el euro, y para ingresar a los mercados de Suecia (corona sueca), Polonia (zloty polaco), República Checa (corona checa) era necesario introducir multidivisa.

Todo el equipo tardó meses en implementar esta funcionalidad y el desarrollo de nuevas funcionalidades se ralentizó aún más. En el caso de una arquitectura de microservicios, todo sería mucho más fácil y rápido.

Segundo ejemplo. Inicialmente, el creador de sitios se lanzó en el idioma nativo y la administración no se iba a expandir a otros mercados. El proyecto tenía una arquitectura monolítica y la funcionalidad creció rápidamente. El esquema de la plataforma era una compleja red en la que todo estaba conectado con todo. Un día, la empresa decidió lanzar una versión de la plataforma en otros idiomas. Al principio parecía que bastaría con añadir sólo los archivos de idioma y ahora tendremos toda la interfaz traducida.

En la práctica, todo el proyecto tuvo que ser rehecho. Por ejemplo, los nombres de empresas y productos en la base de datos ahora deben almacenarse no solo en un idioma, sino en cada idioma. Era imposible duplicar la información debido a la lógica comercial, era necesario almacenar los nombres de todos los idiomas a la vez. En consecuencia, esto condujo a cambios en las interfaces del gabinete y la oficina administrativa. Los cambios en la interfaz requirieron cambiar las reglas para validar los datos entrantes, las plantillas de cartas debido a los diferentes principios de las terminaciones en diferentes idiomas, cambiar las pruebas, etc.

Dado que todo estaba conectado con todo, se tomó la decisión de pasar a una arquitectura de microservicio junto con el lanzamiento de nuevos lenguajes. El proceso de transición de la arquitectura monolítica a la de microservicio tomó más de un año.

Tercer ejemplo. La plataforma fintech se creó en una versión antigua de PHP y Laravel. Actualizar a versiones más nuevas, así como cambiar la base de datos de MariaDB a PostgreSQL, fue prácticamente imposible, ya que todo el equipo tuvo que lidiar solo con el proceso de migración durante varios meses.

Las nuevas versiones de PHP y Laravel en ese momento podían acelerar el proyecto y un mayor desarrollo, pero la arquitectura monolítica no permitía actualizar la pila de tecnología.