SCP/Fiori: abordando apps y servicios componentizados

Cada vez que construimos soluciones web monolíticas corremos el riesgo de dejar abajo todos nuestros servicios ante una falla o tener que hacer una maniobra de mantenimiento que demande bajar los servicios durante una ventana de tiempo, situación que atenta contra el exigido uptime que el negocio demanda para sus servicios, principalmente cuando éstos integran o impactan a sus clientes y proveedores.

Pensemos en el contexto de tener que desarrollar una aplicación de negocio sobre un servidor, que probablemente deba admitir una variedad de diferentes clientes, como navegadores de escritorio, navegadores móviles y aplicaciones móviles nativas. La aplicación también podría requerir exponer una API de terceros. También podría requerir integrarse con otras aplicaciones a través de web services o un middleware. La app podría manejar las solicitudes (HTTP request y mensajes) mediante la lógica de negocio que se le programe; acceder a una base de datos (on-premise o cloud); intercambiar mensajes con otros sistemas y aplicaciones; y devolver una respuesta HTML/JSON/XML; con componentes que correspondan a diferentes escenarios funcionales.

Para lo anterior, debemos resolver una buena arquitectura para la solución que permita que la aplicación sea fácil de entender y modificar, fácil de aplicar continuos deploy, poder contar con copia de ella en diferentes servidores para asegurar escalabilidad y redundancia del servicio y poder integrar en la solución los cambios tecnológicos que vayan emergiendo en el tiempo.

En esta arquitectura se debe estructurar la aplicación como un conjunto de servicios colaborativos de bajo acoplamiento. Cada servicio puede estar compuesto por un conjunto de funciones que estén íntimamente relacionadas. Por ejemplo: habilitar el servicio de solicitud de pedidos, solicitud de anticipo, orden de venta, etc.

Estos servicios se podrían comunicar mediante protocolos síncronos como HTTP/REST o protocolos asíncronos mediante bases de dato intermedias. También se podrían desarrollar y poner en productivo en forma independiente uno del otro. Cada servicio podría tener su propia base de datos para desacoplarse de los otros servicios, para lo cual, dentro del modelo, aseguramos que haya coherencia de los datos entre los servicios. A este concepto se le conoce como microservicio y en Polosur estamos apoyando a nuestros clientes a abordar soluciones bajo este modelo por todos los beneficios que entrega.

[maxbutton id=»1″]