¿Realmente la distribución de las funcionalidades de un sistema son tu solución?

GOBIERNO TI

8/31/20213 min read

Uno de los grandes problemas que se han presentado en los últimos años es la moda de las tecnologías y el agrupamiento de las funcionalidades del sistema que de alguna forma van a apalancar las “Estrategias de negocio”. En este pequeño artículo abordaremos una de estas aristas el cual consiste en el agrupamiento descentralizado de nuestras funcionalidades de negocio, tarea, entre otras.

Uno de los grandes problemas que se han presentado en los últimos años es la moda de las tecnologías y el agrupamiento de las funcionalidades del sistema que de alguna forma van a apalancar las “Estrategias de negocio”. En este pequeño artículo abordaremos una de estas aristas el cual consiste en el agrupamiento descentralizado de nuestras funcionalidades de negocio, tarea, entre otras.

Dentro de una de las fases de la metodología utilizada en Release Solutions abordamos escenarios donde respondemos a una serie de preguntas que me dicen si el apalancamiento de la implementación es a través de un sistema distribuido o funcionalidades descentralizadas que tecnológicamente hablando me pueden representar pequeñas porciones independientes que apalancan el negocio. A continuación, surgen los siguientes interrogantes y pequeños eurekas:

¿Qué tan importante es la disponibilidad, el performance o la securización?
Es vital para mi negocio tener alta disponibilidad sin importar el esfuerzo económico y adicional tener grandes estándares de seguridad entre mis componentes funcionales sin sacrificar el rendimiento o el tiempo de respuesta. Técnicamente es más fácil cubrir estos conductores a través de un monolito. Amigos, es de resaltar que prima el negocio sobre el esfuerzo técnico, dado que es mucho más sencillo administrar un monolito que abrir canales de comunicación, federar un sistema de APIs, consumir librerías y otras cosas que implican una buena gestión de un sistema distribuido.

¿La información o el repositorio de información también se puede distribuir?
Hay que tener en cuenta en esta parte si hay la posibilidad de manejar instancias o sólo una instancia compartida, si es así apague y vámonos, dado que no tiene sentido descentralizar las funcionalidades de negocio si al momento de persistir o consultar la información toque hacer una fila... ¡Replanteemos la arquitectura!.

¿Qué tan grande es el patrocinio económico para este tipo de soluciones? 
Los trade-off de la arquitectura de descentralizada se resuelven con dinero (infraestructura, capacitación, monitoreo, entre otros). Es de resaltar que cuando se desea abordar la idea de descentralizar las funcionalidades de negocio que están plasmadas en componentes tecnológicos, estás se distribuyen en todas las capas (datos, aplicaciones, infraestructura). No tiene ningún valor si desacoplo todo mi sistema y lo despliego en la misma máquina, dado que lo único que estaremos haciendo es agotarnos por tanto paso innecesario con llevándonos realmente a un monolito.

¿Tenemos la experticia para operar en producción?
Hay un gran reto hacer que funcione un ecosistema descentralizado, dado que necesitamos el constante monitoreo de la sanidad de los componentes y del
log que este genere, de allí parte ese gran insumo de que tan bien documentada estén las funcionalidades dentro del log para encontrar esos pequeños y desgastantes puntos de fallos y estos grandes mecanismos de recuperación. Sin embargo, como es bien sabido la tecnología y los retos tecnológicos no pueden impedir que el negocio y las estrategias de este se quede estancado. Solo se hace la observación para que en los talleres de arquitectura quede bien definido los pros y contras de este tipo de arquitecturas.

En un siguiente post compartiremos una de las experiencias que tuvimos en Costa Rica con este tipo de arquitecturas descentralizadas y con una arquitectura heredada SOA, que por cierto son un poco costosas.