Arquitecturas digitales modernas para la aceleración del Time-to-market
10 Jun 2021
Las arquitecturas digitales son aquellas que definen los negocios y la tecnología sobre la que están basados, por lo que resultan tremendamente importantes en un entorno como el actual, en el que los productos y procesos digitales marcan el ritmo. Existen distintos enfoques a la hora de construir arquitecturas digitales bien empleando un enfoque de microservicios o bien el enfoque monolitos modulares y aplicando comunicaciones REST o Event-Driven.
Estas nuevas arquitecturas digitales se encuentran en un momento de gran expansión, hasta el punto de que el porcentaje de empresas que construyeron sus aplicaciones basadas en microservicios el pasado año crecía del 40% hasta el 60%. No cabe duda de que el análisis de la mejor opción es clave para compañías de casi cualquier sector, por lo que a continuación veremos algunas de las características de este tipo de arquitecturas, centrándonos en el caso de los microservicios y los monolitos modulares.
Microservicios, monolitos modulares y Arquitecturas Event Driven
Cuando hablamos de arquitecturas digitales cuyo enfoque consiste en generar pequeños servicios que se ajusten a los equipos de desarrollo para lanzar software rápido al mercado, el patrón utilizado son los microservicios.
Sin embargo, en ocasiones el hecho de tener unidades de software demasiado pequeñas puede dar lugar a problemas de operación, motivo por el que aparece el concepto de monolitos de una manera organizada: los monolitos modulares. Una solución híbrida entre monolitos y microservicios que adopta lo mejor de cada planteamiento.
Por último, si hablamos de las formas en que se comunican los diferentes elementos, si esto se hace empleando eventos nos hallaremos ante el concepto de arquitecturas digitales Event Driven o arquitecturas orientadas a eventos.
Arquitecturas digitales basadas en Microservicios
Esta tendencia es la evolución sobre soluciones monolíticas hacia otras arquitecturas que permitan un desarrollo más rápido y escalable y una mayor independencia. Las soluciones orientadas a microservicios forman parte de una etapa de evolución en el diseño de las soluciones de software con la que se busca mejorar tres puntos principales en la organización:
- Reducir el Time-to-market de las nuevas funcionalidades de negocio que quieran desarrollarse.
- Crear una solución escalable que permita una ingesta cada vez mayor de información.
- Lograr la independencia en el ciclo de desarrollo de cada uno de los elementos que forman parte de la solución.
Para lograr todo esto, estas arquitecturas digitales cuentan con una serie de características o ventajas, aunque también se enfrentan a algunos desafíos.

Ventajas de las arquitecturas de microservicios
Entre las características de estas arquitecturas encontramos la independencia como un punto crucial que da lugar a diferentes ventajas. Por ejemplo, el lenguaje es independiente para cada microservicio, por lo que es posible elegir la tecnología que mejor se adapte a las soluciones que necesita el negocio. También es independiente el escalado de componentes: la lógica de la aplicación se “trocea” en diferentes componentes más pequeños que pueden escalarse individualmente. Y lo mismo sucede con los despliegues, en los que cada microservicio puede desplegarse de manera independiente sin afectar al resto. Además, la independencia y la automatización permiten la combinación de distintas funcionalidades. Algunas ventajas más de este tipo de arquitecturas digitales son:
- Una mayor robustez frente a fallos y mayor capacidad de resiliencia.
- Mayor velocidad de desarrollo, gracias a la reutilización de funcionalidades en futuros procesos de negocio, lo que permite una implementación más ágil de los nuevos procesos.
- Mejor mantenimiento de la solución gracias al aislamiento funcional, siempre que se implementen los métodos adecuados de monitorización y control de errores.
- Posibilidad de evolucionar a distintos ritmos los diferentes microservicios.
Desafíos de las arquitecturas de microservicios
A pesar de sus múltiples ventajas, las arquitecturas digitales basadas en microservicios también se enfrentan a una serie de retos como una mayor necesidad de coordinación de los componentes que en una solución monolítica, al igual que la mayor necesidad de coordinación y automatización de los despliegues y la disponibilización de una infraestructura más compleja que la necesaria para las soluciones monolíticas.
Arquitecturas digitales basadas en Monolitos Modulares
Como decíamos, se trata de una solución a medio camino entre los monolitos y los microservicios que trata de minimizar los puntos débiles de ambos enfoques.
La idea de esta arquitectura es tener un monolito distribuido por capas (como funcionaban los monolitos habitualmente), pero con la diferencia de que estos estén divididos en módulos totalmente desacoplados, permitiendo que, en caso de tener que escalar alguno de estos módulos, poder desacoplarlo en un microservicio y escalarlo de forma independiente. En caso de que no se presente esa necesidad de escalado, todo se mantendría integrado.
Esta opción presenta ventajas como el desacoplamiento de las funcionalidades, permitiendo extraer, como comentábamos, módulos en el momento en que sea necesario para escalarlos como microservicios. Además, no es necesario contar con un sistema inicial de microservicios demasiado amplio, lo que reduce la necesidad de coordinación y mantenimiento de todos ellos.
Entre sus inconvenientes estarían la necesidad de una mayor capacidad de análisis de contextos y de diseño de la solución, así como la de mantener el seguimiento, durante la evolución del producto, de las reglas de desacoplamiento para no evolucionar hacia un monolito único.
Arquitecturas digitales en las compañías
La elección de unas u otras arquitecturas no siempre resulta sencilla, y hay que tener en cuenta otros factores como la necesidad de coordinación de ideas entre el equipo técnico y el equipo de negocio (para lo que puede emplearse el Domain Driven Design y técnicas como Event Storming), así como el tipo de comunicaciones que se realizarán o las diferencias entre los desarrollos REST e Event Driven.
Cabe destacar que, gracias a este tipo de arquitecturas digitales modernas, las compañías son capaces de reducir su Time-to-market, tanto con el uso de las técnicas empleadas en el desarrollo de software como de las metodologías agile y lean que aceleran todos los procesos. Por tanto, la definición de sus arquitecturas digitales es un momento clave, motivo por el que desde VASS trabajamos para ofrecer el mejor asesoramiento y acompañar a nuestros clientes en todo este proceso.