Solución técnica

Arquitectura: Descripción general y componentes del stack tecnológico

La arquitectura diseñada permite a Anjana Data Platform gobernar diferentes tecnologías, clústeres y entornos, y también la hace independiente de las versiones de los productos de cada fabricante: Para cada versión habrá un microservicio con las funciones específicas que puedan existir en cada una de ellas y en caso de necesitarlo se puede aislar para evitar incompatibilidades o problemas de seguridad. Con esto, Anjana Data Platform es la herramienta idónea para gobernar entornos y arquitecturas complejas, como puedan ser multi-cloud, híbridas, big data, AI-Ready, etc, y la hace estar preparada para las nuevas tecnologías, y/o nuevos usos de las tecnologías de la información que están por venir.

De esta forma, Anjana Data Platform ofrece una versatilidad y agilidad de crecimiento que permite ofrecer nuevas versiones con capacidades ampliadas en periodos de tiempo muy cortos, así como una capacidad de personalización total para las funcionalidades mencionadas.

La arquitectura técnica de Anjana Data Platform utiliza el stack de tecnología Spring Cloud en sus versiones más recientes incluyendo los módulos del producto correspondientes (Springboot, Eureka, Config, Security). Con el fin de lograr la máxima independencia con respecto a la tecnología / arquitectura, Anjana Data Platform también hace uso de un repositorio para almacenar archivos o registros.

En este sentido, el stack tecnológico se puede agrupar en los siguientes bloques:

Microservicios basados en tecnologías Spring Cloud

  • Las tecnologías de Spring Cloud utilizadas y la constitución del producto hacen viable la implementación de alta disponibilidad y balanceo en todos los puntos de la plataforma, muchos de los cuales son de facto redundantes debido a la tecnología utilizada y los requisitos mínimos de la plataforma.

  • Gracias a Spring Cloud + Eureka como gestor de registro y sincronización se constituye una estructura de microservicios dinámica y redundante, permitiendo una capa de personalización completa del sistema que permite la deslocalización y el equilibrio de prácticamente todos sus módulos, tanto internos como públicos.

  • A través del enfoque agnóstico ofrecido por la tecnología Spring JPA y la parte de personalización basada en microservicios de Spring Boot, estas piezas podrían sustituirse con facilidad por otras tecnologías con una funcionalidad similar.

  • Para monitorizar el ecosistema de microservicios, Anjana Data Platform utiliza un panel de administración web Spring Boot Admin, a través del cual se puede conocer el estado y las métricas detalladas de cada servicio, ser observado, fácilmente consumido por el usuario o integrado en una monitorización externa plataforma.

  • En relación a la escalabilidad, el uso de tecnologías altamente eficientes multi-thread y la posibilidad de escalado horizontal prácticamente ilimitado en cada uno de sus componentes críticos, hacen que el volumen inicial de usuarios concurrentes y conjuntos de datos gobernados sea muy alto. En cifras: con la configuración recomendada, se pueden servir un volumen de 700 usuarios y un número de 100.000 activos de datos sin necesidad de realizar colas.

Tráfico interno con api gateway

  • Anjana Data Platform utiliza la API Gateway para redirigir el tráfico interno de una manera muy eficiente. Así, por ejemplo, los controladores encargados de realizar tareas de sistema de bajo nivel ( listar tablas, crear directorios, etc), no están dentro de los backends, sino que son invocados por los microservicios.

  • Este diseño permite evolucionar la herramienta, en caso de que cualquier controlador esté obsoleto, desmontando y reemplazando el servicio en cuestión de la forma más efectiva.

Front-end con angular

  • Tanto el portal como el panel de administración presentan su capa de front-end construida en Angular

  • El uso de esta tecnología permite generar una interfaz amigable y totalmente operable por usuarios tanto técnicos como de negocio.

  • Completamente integrable con la tecnología de Back-end para ofrecer todas las funcionalidades que permitan un control completo de Anjana Data Platform y sus módulos ( portal de datos, linaje, auditoría, creación/modificación, data marketplace, workflows, etc..)

  • Portal de administración totalmente manejable que permite configurar Anjana Data Platform sin necesidad de escribir código o de acceder a bases de datos.

Tecnologías de almacenamiento

  • El uso de tecnologías open-source bien consolidadas permite reducir costes logrando una alta fiabilidad, interoperabilidad y evolución. Anjana Data Platform utiliza PostgreSQL y DocumentDB para la capa de persistencia de datos y Apache SolR/OpenSearch como motor de búsqueda.

  • El almacenamiento masivo de registros al ser realizado en SolR/OpenSerach, una tecnología específica basada en una redundancia y escalabilidad, es prácticamente ilimitado y fácilmente configurable.

  • Gestión documental, ficheros de configuración y traducción almacenados en SeaweedFS o AWS S3, un servidor de almacenamiento que permite almacenar diversos tipos de datos estructurados y desestructurados.

  • La gestión de caches de forma compartida se realiza con Valkey, un gestor de caches accesible por todos los microservicios para reducir carga de memoria y latencias.

  • La gestión de carga asíncrona de trabajo se realiza con colas en RabbitMQ, un gestor de colas versátil y sencillo para no bloquear procesos innecesariamente.

  • La coordinación de procesos distribuidos se realiza de manera ágil y confiable gracias a la tecnología de Apache Zookeeper.

Autenticación y autorización

  • Anjana Data Platform está diseñado para que el usuario pueda elegir sobre qué proveedor quiere autenticar y la autorización se hace con la configuración interna en base de datos configurable desde Portuno.

  • Protocolo LDAP: El módulo Zeus dispone de compatibilidad con servicio LDAP bien sea con esquemas OpenLdap o Active Directory.

  • Protocolo Oauth2 (OIDC Azure/AWS/GCP/Auth0).

  • Protocolo SAML2 (Azure/AWS/GCP/Auth0).

BPM bajo estándar BPMN 2.0

Anjana Data Platform incorpora Activiti como BPM open-source totalmente integrado en la solución soportando estándar BPMN2.0 gracias al cual se pueden diseñar e implementar workflows de validaciones totalmente customizados:

  • Los workflows se basan en el modelo de roles, unidades organizativas y permisos configurado y también está integrado con el módulo de alertas, mensajes y notificaciones para favorecer la colaboración entre los intervinientes.

  • En Anjana Data Platform están disponibles workflows predefinidos, pero también se pueden crear workflows adicionales para la validación de las distintas acciones realizadas en Anjana Data Platform (por tipo de objeto, por tipo de acción, por tipo de rol, por área de negocio, ...).

  • Para cada workflow se pueden configurar todos los pasos de validación (orden y rol/roles que validan) así como personalizar las notificaciones enviadas a los diferentes intervinientes para cada paso o incluso añadir acciones específicas soportadas por el estándar (ejecución de un script, lanzamiento de otra acción, envío de email, llamadas a APIs, ...).

  • Adicionalmente, se pueden configurar workflows complejos basados en los valores de los atributos de metadatos de un objeto (p.e. workflows distintos para activos que incluyan datos personales).

  • Todos los workflows con toda su información (pasos del workflow, estado, acciones, usuarios involucrados, etc) quedan trazados y pueden ser visualizados a través de la UI de Anjana Data Platform donde también se puede filtrar para visualizar sólo los workflows de interés y acceder al detalle de cada workflow.

Mecanismos de integración e interoperabilidad

En referencia a la integración con diversas tecnologías, Anjana Data Platform es completamente integrable e interoperable pudiéndose conectar con cualquier tecnología a través de los siguientes métodos:

  • Plugins y Agentes desarrollados por el equipo de Producto de Anjana Data Platform, los cuales ofrecen integraciones nativas sobre diversas tecnologías, cubriendo diferentes modalidades de funcionamiento y opciones de configuración (ver detalle en el catálogo de componentes por zona, más abajo).

  • Plugins y conectores desarrollados ad-hoc: Se proporciona un SDK (software development kit) que permite tanto a clientes como a partners desarrollar sus propios conectores de forma autónoma para implementar funcionalidades y usos requeridos específicos sin necesidad de alterar el producto.

  • Haciendo uso de las diferentes capas de API que proporciona Anjana Data Platform, tanto para importar como para exportar la información deseada así como para ejecutar acciones concretas en la aplicación. En este sentido, Anjana Data Platform cuenta con 3 capas de API: pública, administrativa y de configuración; cada una con un propósito específico y dirigida a unos perfiles diferentes.

  • MCP (Model Context Protocol): módulo que permite a un Agente IA buscar, consultar y editar entidades, DSAs, adherencias y logs de auditoría de Anjana Data Platform en modo autoservicio (ver detalle en AI (BETA), más abajo).

Además, se añade la capacidad de ejecutar acciones personalizadas en la aplicación así como de lanzar scripts externos, gracias a las siguientes alternativas:

  • Haciendo uso de un interceptor interno y su correspondiente SDK, el cual se provee con Anjana Data Platform

  • Mediante el uso del módulo de BPM, basado en Activiti, siguiendo el estándar BPMN 2.0, desde el cual, se puede definir cualquier tipo de workflow, en cuyos pasos se puede definir el lanzamiento de dichas acciones y/o scripts.

  • Haciendo uso de las diferentes capas de API que proporciona Anjana Data, de la misma manera que lo indicado anteriormente. En este sentido, el uso de las APIs puede ser orquestado por un planificador interno o ejecutarse a partir de triggers.

En cuanto a los Plugins, estos permiten que Anjana Data Platform ejecute tanto acciones sobre los sistemas gobernados, como recuperar metadata e incorporar ésta en Anjana Data Platform permitiendo la importación asistida y automática de metadatos.

Integración.svg

API Restful con Swagger

Por último, para garantizar que Anjana Data Platform es 100% interoperable, toda la solución está totalmente Apificada con API Restful con Swagger. Así, Anjana Data Platform cuenta con tres capas de APIs que sirven a distintos propósitos:

  • Pública: La capa de API pública ofrece las funcionalidades de usuario para interactuar con Anjana, desde esta capa de API se puede acceder a los distintos módulos que ofrece la herramienta como son: Creación/modificación de objetos, linaje, histórico, auditoría, alertas y notificaciones y data marketplace.

  • Administrativa : Mediante la capa administrativa de API se puede gestionar el metamodelo en modo administrador, es decir, se pueden realizar modificaciones sobre el metamodelo (creación/modificación de objetos) sin necesidad de pasar por las validaciones definidas para los usuarios.

  • Configuración : Esta capa de configuración de API, permite gestionar la configuración de la herramienta en todas sus dimensiones:

    • Gestión de Unidades Organizativas, Roles y permisos.

    • Gestión de Usuarios.

    • Gestión de Objetos, workflows de validación y plantillas de atributos

    • Gestión de atributos y validaciones sobre atributos.

    • Gestión de filtros de búsqueda

    • Gestión de idiomas

Dashboarding

En cuanto a capacidades de reporting, Anjana Data Platform incorpora Grafana como herramientas open-source de autoservicio y reporting totalmente integradas en su stack de arquitectura.

Dashboarding: El modelo de datos de Anjana Data Platform es abierto, de esta manera la información contenida en la herramienta se puede extraer para su uso en cualquier herramienta de Dashboarding, como Grafana, Azure PowerBI Google Looker o Amazon QuickSight, entre otras.

Dashboarding con Grafana: Anjana Data Platform ofrece, en su integración nativa con Grafana la posibilidad de construir reportes y cuadros de mando a medida de forma autónoma y dinámica sin necesidad de programar mediante funciones como clicks y drag & drops. Adicionalmente, Grafana aporta la capacidad de realizar análisis de series temporales y configuración de alertas en tiempo real que facilitan el seguimiento y gestión de la implantación del gobierno del dato así como de la calidad de los datos.

Componentes de la solución

A continuación se detalla cómo se agrupan los módulos de Anjana Data Platform en zonas funcionales. Las tecnologías subyacentes de cada uno ya se han descrito en las secciones anteriores.

anjana_architecture_v7.svg

Web Zone

Portuno UI

Es una solución basada en web construida sobre la arquitectura de microservicios que hace uso de tecnologías de código abierto bien consolidadas para ofrecer un portal de administración, el cual permite a los usuarios configurar el ecosistema de Anjana Data Platform.

Anjana UI

Es una solución basada en web construida sobre la arquitectura de microservicios que hace uso de tecnologías de código abierto bien consolidadas que ofrece una amplia gama de funcionalidades centradas en la gestión de catálogos y el autoservicio de los datos caracterizándose por un criterio de accesibilidad muy elevado y por un uso simplificado y colaborativo.

Control Zone

Drittesta

Este módulo es la herramienta para recuperar información sobre el trabajo del ecosistema Anjana Data Platform, para proporcionar una respuesta y apoyo a los clientes de la plataforma. Estos datos serán enviados a un servidor externo de la infraestructura.

Integrations Zone

Zeus

Módulo que proporciona autorización de servicios. De acuerdo con OAuth 2.0/SAML2, la especificación define un protocolo de delegación que es útil para transmitir decisiones de autorización a través de una red de aplicaciones y APIs habilitadas para la web. OAuth se utiliza en una amplia variedad de aplicaciones, incluido el suministro de mecanismos para la autenticación de usuarios.

Tot

Módulo encargado de la integración con diferentes tecnologías para la realización de las siguientes tareas: Creación de estructuras de datos exportando y cargando los metadatos requeridos en la plataforma de datos correspondiente, provisión de los roles y grupos a la plataforma de gestión de identidades, provisión de los permisos (grants y acls) necesarios en las ubicaciones de conjuntos de datos gobernados, ejecución básica de consultas al vuelo para visualización de muestreo de datos.

También incluye los clientes necesarios para importar y/o inferir automáticamente los metadatos y el linaje estático de fuentes de información externas y cargarlos en KERNO. De esta forma, el usuario queda relevado de la tarea manual de imputación de metadatos en Anjana Data Platform para todas aquellas fuentes y tecnologías a partir de las cuales se ha desarrollado e integrado el correspondiente extractor.

Como es un servicio externo desarrollado con microservicios en Spring Boot, se pueden agregar diferentes extractores para diferentes fuentes y tecnologías de forma incremental e independiente. Además, como está integrado con KERNO a través de la API Rest, los desarrollos de terceros se pueden utilizar para este propósito y alimentar a ANJANA CORE siempre que la información se proporcione de la forma en que KERNO espera recibirla. En algunos casos, la ejecución de estos procesos puede tardar demasiado, por lo que estas operaciones se definen de forma asincrónica, para evitar esperas innecesarias al usuario en la aplicación. La ejecución de estos procesos se realizará mediante el envío de solicitudes al módulo responsable, que se conectará a la fuente y cuando finalice la extracción y carga de los metadatos, se notificará al usuario.

TOT Plugins

Los plugins de TOT sirven para realizar las acciones que se desarrollarán a través de TOT, cada plugin actúa sobre una partición lógica resolviendo una conexión, puede lanzar varias acciones según las tecnologías implicadas y una tecnología puede tener más de un plugin según sus posibles usos. Los plugins disponibles pueden ser configurados y/o modificados para propósitos específicos o implementaciones ad-hoc a la vez que nuevos plugins pueden ser desarrollados y desplegados siguiendo los estándares recomendados por Anjana Data Platform.

API Zone

Portuno

Es el módulo donde se centraliza toda la configuración de Anjana Data Platform y la información para el frontal web de Admin. En este módulo se realiza la gestión de las BBDD internas de Anjana Data Platform donde se almacena la configuración de la instancia y de los workflows diseñados que luego se ejecutan en Hermes.

Hermes

Este módulo es la herramienta de gestión de workflows de validación y está basado en el motor de Activiti. Activiti es el principal motor BPM de código abierto, ligero y centrado en Java, que respalda las necesidades de automatización de procesos del mundo real. Siguiendo el estándar de BPMN 2.0, ofrece un motor para diferentes procesos pudiendo configurar diferentes workflows de validación.

Kerno

Es el módulo básico de la arquitectura funcional, donde se incluyen las funcionalidades principales de la solución y las estructuras comunes a todos los módulos.

Minerva

Este módulo es la herramienta para centralizar, organizar e indexar todos los metadatos y auditoría del ecosistema de Anjana Data Platform.

Marketplace

Este módulo es la herramienta para centralizar, organizar y gestionar los activos para gestión de accesos.

Viator

Basado en Spring Cloud Gateway, es el punto de entrada de cualquiera de las APIs de Anjana Data Platform, tanto para cualquier usuario como para los frontales web o interna entre los microservicios.

Orchestration Zone

Horus

Es un servicio de configuración central que sirve configuraciones desde un Secret Manager, Bases de Datos o desde git durante el arranque de los microservicios.
Además está basado en Netflix Eureka donde se registran los microservicios al arranque y desde donde se puede conocer el estado de cada uno de ellos. Cuando un microservicio necesita conectar con otro, Horus le sirve el hostname y la IP actual de tal forma que se auto orquesta la interacción entre los microservicios de la arquitectura.

Storage Zone

Agrupa los módulos de persistencia, indexación, mensajería y cache ya descritos en la sección Tecnologías de almacenamiento más arriba (S3/SeaweedFS, PostgreSQL/DocumentDB, SolR/OpenSearch, RabbitMQ y Valkey).

AI

MCP

Anjana Data ha apostado por el autoservicio de los clientes para consumir metadatos, auditoría y linaje, incluso alterarlos, en ADP. Para ello existe un módulo Beta que permite, con diferentes herramientas, que un Agente IA pueda buscar y consultar entidades, DSAs y logs de auditoría, explorar el linaje de una entidad, gestionar adherencias a DSAs, y crear, editar y enviar entidades a aprobación.