APIs y Microservicios, Estrategia de Dominios de Negocio

Actualmente la arquitectura de Microservicios se ha recargado de publicidad dentro del segmento de desarrollo de software. Ese modelo de arquitectura es un enfoque que determina el despliegue de aplicaciones en una gama de servicios. El equipo de desarrollo puede adoptar las tecnologías más adecuadas para solucionar problemas específicos. La arquitectura de Microservicios aumenta también la escalabilidad por permitir el uso de enfoques como auto-scaling y micro-container.

APIs y microservicios están muy relacionados, pues el estándar es utilizar una interfaz de APIs totalmente dirigida a RESTful. Sin embargo, actualmente todavía enfrentamos algunos problemas cuando necesitamos integrar con sistemas legados para externalizar funcionalidades como servicios, pues la mayoría de los sistemas no tienen protocolos como WebServices o interfaces RESTful, por lo tanto, vamos a explorar ese tema.

 

Cual es el problema? y el enfoque de Microservicios

La mayoría de las empresas desean exponer APIs de forma interna (dentro de la corporación) y/o externa (a socios o clientes), sin embargo, sus sistemas o aplicaciones no se diseñaron para ese propósito. La mayoría de las aplicaciones están basadas en la siguiente arquitectura:

  • Aplicaciones monolíticas para web usando una base de datos única. Ej: Java (JSF) con base de datos Oracle.
  •  Producto o plataforma como, por ejemplo, ERP SAP.
  • Aplicaciones de alto nivel en escritas en Cobol
  • Aplicaciones Cliente-Servidor implementadas en VB6 y SQL Server.

Cuando enfrentamos ese tipo de escenario, la solución común es construir un adaptador para exposición de un protocolo estándar. Ese componente debe parecerse con el diagrama presentado a continuación

 

Para qué usamos una arquitectura de microservicios

 

El adaptador es el componente principal para la solución, pues permitirá la externalización del servicio. Para promover esa estandarización, deben utilizarse algunos estándares:

  • Compatibilidad total con estándar RESTful
  • Organización por dominios de negocio
  • Ser fácilmente escalable
  • Paquetes livianos y con inicialización rápida.

Para tener una aplicación con un modelo de integración sencillo y escalable es necesario tener un estilo de arquitectura que cumpla todos esos requisitos y el estilo de arquitectura que más se acerca de esas características es el de Microservicios.

Recuerde que esa recomendación se aplica cuando su backend no es expuesto con el protocolo HTTP, porque la mayoría de las soluciones de API Gateways logrará enrutar y transformar fácilmente los mensajes para comunicación con backend.

Otros escenarios en los cuales la arquitectura de Microservicios es muy recomendada son:

  • Orquestación: en algunos casos es necesario enrutar y/o ejecutar otros servicios dependiendo de alguna condición específica.
  • Composición: algunas veces es necesario ejecutar más de un servicio para componer y devolver una respuesta.
  • Transformación de Mensajes Complejos: cuando es necesario utilizar algoritmos más complejos para lograr devolver un mensaje al consumidor del servicio.
Microservicios y Dominios de Negocio

Finalmente, se debe considerar que los microservicios necesitan organizarse dentro de los dominios de su negocio. De esta manera, podemos ver que ese estilo de arquitectura es una oportunidad de romper los monolíticos de su negocio y suministrar una mejor arquitectura.

La conceptualización de Dominios de negocio, es quizás el mayor beneficio que entrega la arquitectura de Microservicios, ya que permite una mirada de los productos y servicios de la compañía de manera simple y útil.

Estos dominios de Negocio, además tienen en la mayoría de los casos un espejo dentro de la organización, por lo tanto su mapeo con los responsables o dueños es mucho más simple, en fin se logra una simplificación conceptual que facilita enormemente los desarrollos, ya que los requerimientos tienen un hilo conductor de negocio e impacto.

Comunmente les sugerimos a nuestros clientes que toman la iniciativa de adoptar estas nuevas arquitecturas tecnológicas, mucho más allá de la tecnología pura, si no que además consideren un esfuerzo para repensar u ordenar sus dominios de negocio, ya que traerá infinitos beneficios en el desarrollo de sus proyectos.

También podría interesarte…

Que es Cloud Native ?

Que es Cloud Native ?

  Felicitamos a nuestroLíder de Arquitectura Digital Felipe Andrés Velásquez Castro,  porque su articulo sobre...

leer más
Webinar 15 de julio: Arquitectura de Microservicios

Webinar 15 de julio: Arquitectura de Microservicios

Un viaje desde la Infraestructura física a la escalabilidad cloud y desde el monolito a una arquitectura 100% desacoplada.
Este miércoles 15 de Julio hemos realizado nuestro Webinar de Arquitectura de Microservicios.
Con una gran audiencia y participación se realizado esta sesión especializada en Arquitecturas de microservicios.

leer más