Buscar

La arquitectura de software es el reflejo del “alma” del negocio

*Por Juan Bello, Business Head LatAm de GlobalLogic

Muchas veces, se considera la arquitectura de software como un problema meramente técnico, para que sea resuelto por las áreas de IT o por expertos en nuevas tecnologías que gustan de hablar utilizando vocablos incomprensibles para el resto de los mortales.

Sin embargo, la aceleración de la transformación digital, la complejidad creciente de los panoramas tecnológicos de las empresas y el valor agregado que las organizaciones pueden sacar de nuevas tecnologías como la nube, el big data, la inteligencia artificial o internet de las cosas, hacen que la definición de la arquitectura de software correcta no sólo sea crítica para mantener el negocio operativo, sino fundamentalmente para competir y sobrevivir en un mundo crecientemente data driven.

En este sentido, un reinado parece estar llegando a su fin. Durante muchos años, la arquitectura de software denominada “monolítica” gobernó el panorama: todas las funciones en un único gran código. Si bien tiene algunas ventajas -es fácil de desarrollar, por ejemplo- muestra algunos límites muy relacionados con esta era de cambios vertiginosos, que requiere altos niveles de resiliencia y adaptabilidad. ¿La empresa saca al mercado un nuevo producto o servicio? ¿Cambia el modelo de distribución? ¿Un nuevo  esquema de experiencia del cliente? En cualquiera de estos casos, o de cualquier otra posibilidad de las incontables existentes que requieran de una modificación en el sistema, exige realizar un despliegue completo, como si se tratara de un relanzamiento.

Por eso, con el despliegue del concepto de agilidad ganando popularidad dentro de las empresas, fueron dando cada vez más lugar a la arquitectura de microservicios, es decir, módulos y componentes muy detallados, de forma tal que cada uno es responsable de una tarea, que se comunican entre sí y que mantienen de todas maneras su independencia. Como si cada componente del sistema fuera una aplicación en sí mismo. El modelo de microservicios gana popularidad con la aceleración de la transformación digital y con la penetración de la tecnología en prácticamente todas las áreas de una empresa, incluyendo aplicaciones autogeneradas por los diversos sectores a partir de herramientas low code o no code.

En resumen, esta arquitectura permite acompañar rápidamente desde el desarrollo de software los cambios del negocio, sin generar disrupciones ni afectar áreas que no están relacionadas en absoluto con el proceso que se estuvo modificando. Agilidad y calidad para responder a gran velocidad, tal como esta parte del siglo XXI lo viene exigiendo. Esto, sin contar que cuando aparece un error afecta únicamente al microservicio con el cual está asociado, cuando en una arquitectura monolítica podría impactar sobre todo el sistema (o el monolito: con el paso de los años, las empresas aprendieron a estructurar sus grandes monolitos en subsistemas más pequeños integrados, reduciendo así los riesgos y acercándose, de alguna manera, al modelo que prevalece en la actualidad). La escalabilidad y la adaptabilidad a panoramas de IT diversos son otras dos cualidades de los microservicios que sobresalen en relación a lo que ofrece una arquitectura en monolito.

Pero como todo en la vida, los beneficios suelen venir acompañados de algún tipo de complejidad inherente. En el caso de la arquitectura de software basada en microservicios, esta “división” de los sistemas en aplicaciones individuales implica un mayor esfuerzo de orquestación: es fundamental gestionar, coordinar y administrar tanto los microservicios en sí mismos como los datos que crean y modifican.

La elección de la arquitectura de software correcta y adecuada para cada organización, por lo tanto, es una decisión clave de negocios: de cierta manera, se trata de un reflejo de cómo funciona la empresa o de aquello que declara ser: flexible o rígida, dinámica o estática, adaptable o estable… moderna o con altos riesgos de obsolescencia.