Microservice-architectureCloudarchitectsCloud-computingMicroservicesLow-code

Arquitectura de Microservicios y OpenConnect como infraestructura central del cambio

Diego Reyes Hernández

Diego Reyes Hernández

10 de abril de 2024

Arquitectura de Microservicios y OpenConnect como infraestructura central del cambio

Los patrones de diseño son soluciones a problemas comunes en el diseño de software que han sido identificados y documentados por expertos en el campo. La idea central es proporcionar un lenguaje común y una guía para los desarrolladores y arquitectos a la hora de abordar problemas específicos en el diseño de software. En las últimas décadas, numerosas empresas han surgido con ideas innovadoras y desafíos únicos. Gracias al avance de la capacidad computacional actual, es posible desarrollar soluciones mediante patrones de arquitectura diseñados para abordar estas ideas y desafíos, integrándose en infraestructuras robustas y escalables.

El objetivo de este artículo es explicar cómo la plataforma low code OpenConnect puede servir como soporte para patrones de diseño específicos, en particular, la Arquitectura de Microservicios, y cómo la infraestructura de dicha plataforma se adapta al modelo arquitectónico.

Los patrones de arquitectura de software son soluciones estructuradas para abordar problemas recurrentes y concretos, y proporcionan un enfoque organizado y esquemático para la consideración de componentes del software que facilitarán la creación de sistemas robustos, eficientes y sostenibles en el tiempo.

En los últimos años, gracias al avance de la tecnología, tenemos la capacidad, como arquitectos de software, de recomendar patrones con un enfoque “cloud first”. Este enfoque nos permite tener en nuestras manos muchas más opciones de arquitectura que años atrás a la hora de tomar decisiones en diseño de software. Es por esto que las empresas han experimentado cambios en sus arquitecturas de software, saliendo de “sistemas monolíticos” para moverse a una mayor flexibilidad de patrones de diseño para el abordaje de problemas.

De este modo, muchas empresas que empezaron con un software que tendría features y módulos puntuales en sus inicios, hoy disponen de nuevos desafíos y por ende nuevas soluciones de diseño. Esto es parte del ciclo de vida de todo software, “la mejora continua” y “refactorizaciones”. Es así como un sistema que se consideraba simple, crece y se vuelve complejo. En ese cambio constante, el patrón de arquitectura orientado a microservicios es visto hoy como un aporte que enriquece el software. Otra constante inquietud y, al mismo tiempo, una necesidad de hoy, es la capacidad de que los software o plataformas estén cada vez más cerca del concepto “Near Real Time” y con esto mejorar los tiempos de procesamiento de la información. Ese concepto permite disponer de una estructura de mensajería interna entre componentes del software en tiempos cercanos al real. Este proceso permite tener una mejor capacidad de gestión para la toma de decisiones, mediante patrones de arquitectura orientados a eventos que pueden encaminarnos al objetivo del “Near Real Time”.

El objetivo principal de una Arquitectura basada en microservicio es la separación de funcionalidades o dominios específicos del producto a un nivel de infraestructura de software. Cada servicio se comporta como un componente por separado que tiene la capacidad de interactuar con otros componentes y que responde a un contexto mayor. Por ejemplo, si empleamos una analogía, este patrón de diseño se asemeja al caso del cuerpo humano. Este se concibe como un sistema complejo, en el que cada órgano (pulmones, corazón, cerebro, entre otros) podemos verlos como un servicio que realiza una función específica. Así entonces, al desarrollar una actividad como correr, respirar o pensar, cada órgano involucrado interactúa entre sí para completar esas actividades. Cuando hablamos de un contexto mayor, podríamos referirnos a la actividad que una persona puede hacer como correr o respirar y donde cada servicio interactúa entre sí para poder completar estas tareas. Otra de las características que ofrece este patrón de microservicios se refiere a que cada servicio, como tiene esta capacidad de estar desacoplado, posee su propia infraestructura que puede crecer o ampliarse independientemente del resto, dependiendo de la necesidad y el contexto.

Tal como señalamos en nuestra publicación de diciembre Desarrollo Low Code: transformando empresas en la era digital con OpenConnect (ver en https://blog.openagents.io/desarrollo-low-code-e744076da47a), OpenConnect es una plataforma low code, lo que permite desarrollar aplicaciones con poco o bajo código, pero además, permite abstraernos de la gestión de infraestructura, ya que automatiza el despliegue de aplicaciones en entornos de producción. Lo anterior, facilita la creación de todo tipo de proyectos, ya sea de baja o alta complejidad. OpenConnect permite configurar “instancias” para desarrollar. Estas instancias pueden servir como servicios en una arquitectura de microservicios. La plataforma OpenConnect permite levantar instancias (Flows) que se comportan como servicios con la capacidad de resolver problemas.

OpenConnect, como se mencionó anteriormente, posee múltiples beneficios a la hora de poder visualizar soluciones que el patrón de microservicios nos ofrece. Cada instancia o aplicación que se configura en OpenConnect puede actuar como un servicio que atiende los requerimientos de distintas peticiones como se observa en el diagrama 1. En este cada servicio corresponde a una instancia.

Diagrama 1 (Diagrama de arquitectura microservicios)

Por su parte, en el diagrama 2, se muestra cómo cada servicio cumple una funcionalidad para el software y actúa autónomamente tanto en su implementación como despliegue. Entre esas funcionalidades podemos mencionar la conectividad en distintas variantes: i) con distintas fuentes de datos, ii) emisión de eventos, iii) envío de correos iv) modelos de machine learning. Por su naturaleza low code, OpenConnect se convierte en una plataforma que unifica y conecta diferentes tecnologías y funcionalidades para facilitar de manera visual el despliegue de soluciones escalables.

Diagrama 2 (Diagrama de conectividad)

En OpenConnect tenemos la posibilidad de construir servicios a una mayor velocidad y así mejorar el time to market y trabajar en paralelo con más usuarios para reducir los tiempos de desarrollo. Esto constituye una de las ventajas de OpenConnect a la hora de levantar infraestructura especializada. El concepto de instancias nos permite tener segregados los flujos de trabajo, en simples pasos.

Con OpenConnect tenemos la capacidad de construir servicios a una mayor velocidad debido a la capacidad de auto atención, de levantar una infraestructura especializada para este tipo de soluciones en unos simples pasos, de escalar verticalmente instancias o configuraciones para tus APIs. Se suman a estas capacidades, el monitoreo y observabilidad propias de toda solución informática. En la plataforma, el apartado de monitoreo muestra logs de tu servicio en tiempo real, además de indicadores sobre el consumo de recursos.

OpenConnect es una plataforma low code que rápidamente está obteniendo popularidad por su forma sencilla de armar flujos de trabajo y procesos de desarrollo de software. Hoy en día, son más las personas que con un par de clicks pueden desplegar aplicaciones de forma ágil y sencilla. Utilizando esta herramienta como pilar central en tu stack tecnológico, puedes auto gestionar y automatizar procesos de negocio teniendo en cuenta los fundamentos de la arquitectura de microservicios que anteriormente describimos. Te invito a que conozcas esta plataforma y veas como despegan tus ideas en www.openconnect.cloud

Por Diego Reyes Hernández, líder en Arquitectura e Ingeniería de Software en OpenAgents | 2024


Arquitectura de Microservicios y OpenConnect como infraestructura central del cambio was originally published in Openagents on Medium, where people are continuing the conversation by highlighting and responding to this story.

Diego Reyes Hernández

Diego Reyes Hernández

Autor