Creación de valor

Arquitectura de aplicaciones

Los sistemas heredados aún representan entre el 74 % y el 88 % de las aplicaciones de las organizaciones y consumen aproximadamente el 80 % del presupuesto de TI, lo que hace que la modernización de las aplicaciones sea una necesidad crítica.

Cuando una tecnología disruptiva es rápidamente adoptada por mucha gente, se crea la sensación de que ya se ha implementado en todo. Así ocurrió con la electricidad, la microinformática digital, Internet y, actualmente, con lainteligencia artificial. Del mismo modo que nos sorprendía encontrar un ordenador que no estuviera conectado, nos cuesta creer que todavía existan sistemas heredados con una arquitectura deaplicacionesdiferente alas redes neuronales artificiales.

Estos sistemas no solo existen, sino que constituyen una parte importante del panorama del software de las organizaciones de Brasil y del mundo. Estudios como elinforme sobre modernización de aplicaciones del Instituto del Conocimiento de Infosys, elinforme global sobre tecnología de KPMGy elinforme sobre modernización de sistemas heredados de Thoughtworksafirman que los sistemas heredados constituyen entre el 74 % y el 88 % delas aplicacionesde las organizaciones y que su mantenimiento consume aproximadamente el 80 % del presupuesto de TI de las empresas.

Los proyectos demodernización de aplicacionesse encuentran entre los más frecuentes aquí en Inmetrics. Los escenarios a los que nos enfrentamos son muy variados, lo que nos pone frente a frente con diferentes estilos de arquitectura deaplicaciones. Dado que analizarlas es una etapa fundamental en los proyectos de modernización, dedicaremos este texto a ellas.

Aunque hay muchos tipos, podemos dividir la arquitectura delas aplicacionesen dos grandes estilos: centralizada y distribuida. La decisión por uno de los estilos pasa por una serie de criterios que van desde la viabilidad de modernizar la aplicación hasta la seguridad y el uso. Vamos a comprender mejor cada uno de los estilos.

Monolitos y otros softwares de arquitectura centralizada

Al inicio del desarrollo de software, la arquitectura estándar era elmonolito: una base de código unificada e indivisible que combinaba la interfaz de usuario, la lógica de negocio y las capas de acceso a los datos. Este tipo de estructura exigía la implementación de toda la aplicación como una entidad cohesionada.

Hoy en día es poco habitual iniciar el desarrollo de productos digitales con una arquitectura monolítica clásica. Sin embargo, varios sistemas muy utilizados en todo el mundo emplean una arquitectura basada en el monolito. Los desarrolladores deShopify, por ejemplo, decidieron evolucionarlo hacia un monolito modular.

El ejemplo nos lleva a otro tipo de arquitectura deaplicacionesde estilo centralizado, que es la de diseño modular. Como su propio nombre indica, en lugar de una base unificada e indivisible, el software se desarrolla en módulos razonablemente independientes e intercambiables. A pesar de estar compilado en un único ejecutable, cada módulo tiene una responsabilidad específica y se comunica con los demás a través de interfaces bien definidas.

Entre los tipos de arquitectura deaplicacionescentralizadas, ninguna se ha utilizado tan ampliamente como la arquitectura por capas. Se ha convertido en la descripción clásica de la arquitectura de un software: datos,backendyfrontend, en el caso de los sistemas de tres capas.

La característica principal de este tipo de arquitectura fue la que la hizo tan predominante en la industria del software: cada capa tiene una responsabilidad específica y sus dependencias fluyen de arriba hacia abajo, de forma unidireccional: elfrontendconoce elbackend, pero lo contrario no es cierto; lo mismo se aplica a la relaciónentre el backend y la base de datos.

Con esta arquitectura, ante la necesidad de realizar correcciones y mejoras en una de las capas, las otras dos se mantienen intactas. Esta organización facilita la división del trabajo de los equipos responsables de la aplicación, además de preservar la integridad y el estado evolutivo de cada capa, ante la necesidad de mantenimiento de las demás.

Arquitectura de aplicaciones: las de estilo distribuido

Las redes locales y, sobre todo, la red mundial de ordenadores, Internet, han establecido un nuevo paradigma para la informática. En consecuencia, y de forma casi natural, han surgido estilos distribuidos de arquitectura deaplicaciones.

Aquí cabe destacar dos características que se han vuelto cada vez más necesarias para las exigencias actuales. En primer lugar, la separación del sistema: los programas informáticos comenzaron como monolitos, se separaron en módulos, en capas, y siguen así, cada vez en partes más pequeñas, como veremos a continuación.

La segunda característica es la necesidad de conexión entre programas. Lo que define a una red es el hecho de que está distribuida; para aprovechar al máximo esta característica, las arquitecturas deaplicacionestendrían que replicar este principio.

A partir de estas premisas surgieron las aplicaciones construidas entre cliente y servidor. En este tipo de arquitectura, una máquina sirve una parte de la aplicación mientras que la otra recibe el servicio. Es el tipo de arquitectura utilizada en cualquier sitio web, incluidos aquellos que no utilizan sistemas de gestión de contenidos. El código, aunque solo sea en HTML, permanece en un servidor mientras que el cliente (un navegador) accede a él.

Con el rápido aumento de la capacidad de tráfico de Internet, a principios del siglo pasado asistimos al inicio de la consolidación de las arquitecturas orientadas a servicios. En este tipo de arquitectura, la aplicación se forma a partir del resultado de los servicios de otras aplicaciones, cada una con su lógica distintiva. Son autónomas, tienen sus propias lógicas que son desconocidas para las demás y se comunican a través de interfaces estandarizadas.

La arquitectura orientada a servicios, también conocida como SOA, sigla del término inglésService-Oriented Architecture, ha permitido alcanzar los primeros grandes niveles de integración y escalabilidad. Se trata de un tipo de arquitectura muy común en las aplicaciones de los grandes bancos, que normalmente necesitan interactuar con sistemas heredados antiguos y, al mismo tiempo, ofrecer una experiencia más fluida al usuario.

Siguiendo la tendencia de fragmentación de las aplicaciones en partes cada vez más pequeñas, avanzamos hacia arquitecturas de aplicaciones orientadas a microservicios, ampliamente utilizadas en la actualidad. Siguen los principios de la SOA con una diferencia fundamental: mientras que esta prevé un punto central de gobernanza de los servicios, responsable del enrutamiento y la traducción de los protocolos, la arquitectura de microservicios también tiene su gobernanza descentralizada. Se comunican directamente entre sí, punto a punto, a través de API. La autonomía de cada servicio aumenta, lo que permite realizar cambios en cada servicio con su propia periodicidad, sin afectar al funcionamiento de toda la aplicación.

Actualmente, aquí en Inmetrics, en el desarrollo de nuevos productos digitales o en la modernización de aplicaciones, ya es habitual crear sistemas con arquitectura sin servidor, que aprovechan al máximo la distribución de la computación en la nube. En el futuro dedicaremos una publicación exclusivamente a este tipo de arquitectura.

Como mencionamos al principio del texto, aquí en Inmetrics nos encontramos con diferentes estilos de arquitectura deaplicaciones. Combinando prácticas de ingeniería de calidad, inteligencia artificial y computación en la nube, llevamos a cabo diversos proyectos demodernización de aplicacionespara transformar los sistemas heredados, estructurándolos en arquitecturas contemporáneas.

Si desea que susaplicacionesaprovechen al máximo las capacidades de la nube y laIA,¡póngase en contacto con nosotros! Nuestro equipo está listo para transformar sus sistemas heredados en programas modernos.¡Haga clic aquí y hable con nosotros!

Artículos relacionados
Creación de valor
Reestructuración del código
Creación de valor
Automatización
Creación de valor
Aplicaciones
Creación de valor
Modernización de aplicaciones
Pensamos con ambición.

Ejecutamos con método.

Construimos lo que está por venir.
Inmetrics. Business, Engineered.

Brasil

comercial@inmetrics.lat
Av. Tambore, 267
22º piso - Torre Sur
Tamboré, Barueri - SP
06460-000, Brasil

Chile

comercial@inmetrics.lat
Cerro El Plomo, 5420
Oficina 1503
Las Condes | Santiago, Chile
7560742

Colombia

comercial@inmetrics.lat
Calle 95 n.º 14-45
Edificio Nueve 5, piso 8
Oficina 801
Bogotá, Colombia
110221

Descubra más sobre Inmetrics

Suscríbase ahora mismo para seguir leyendo y tener acceso al archivo completo.

Seguir leyendo