Tecnologías de la Onesait Platform (parte 2)

Header Technology Foundations

Como comentábamos en la entrada anterior, agrupábamos las tecnologías con las que está construida la Onesait Platform en cinco bloques:

  • Tecnologías core
  • Tecnologías de comunicación
  • Tecnologías basadas en productos Open Source
  • Tecnologías de almacenamiento
  • Tecnologías de despliegue y CaaS

En esta segunda entrada vamos a tratar los tres últimos bloques de tecnologías.

Tecnologías basadas en productos Open Source

Uno de los principios de la Onesait Platform es no reinventar la rueda; hay multitud de productos Open Source que cubren capacidades muy interesantes para incorporarse a la Plataforma. Por ello, la estrategia de la Onesait Platform en estos casos es realizar tareas de integración para incorporarlos al conjunto de funcionalidades ofrecidas.

  • Gravitee Api Manager: integrado con el API Manager de la Plataforma, se despliega como un módulo independiente. Proporciona un mejor control sobre las APIs REST expuestas, permitiendo establecer planes de uso, control de acceso integrado con el servidor OAuth2 de la plataforma, pre/post-procesamiento de la información, estadísticas de uso y monetización.
  • Streamsets: es el componente Dataflow, que permite la construcción visual de pipelines, integrados dentro del control panel, para el tratamiento de la información. A partir de un origen, permiten transformar la información y almacenarla en diferentes destinos. Se han desarrollado un conjunto de componentes visuales que es posible insertar en los pipelines de tratamiento de información, para que esta pueda ser información cuyo origen o destino sean las ontologías de la Onesait Platform. Se despliega como un módulo independiente al que a partir de una imagen Docker de Streamsets se le añaden los componentes de plataforma y configuración.
  • Apache Zeppelin: es el componente de Notebooks que da soporte para la parte analítica. Está basado en una interfaz web, integrada dentro del control panel, desde la que los desarrolladores y científicos de datos pueden implementar, ejecutar y entrenar algoritmos, así como visualizar resultados de una forma gráfica. Su funcionamiento se basa en intérpretes, que permiten desarrollar algoritmos en Spark, Python, Java, Scala, etc. así como acceder a diferentes fuentes de información vía JDBC, REST u ontologías en la Plataforma a partir de intérpretes propios de la Onesait Platform. Se despliega como un módulo independiente al que a partir de una imagen Docker de Zeppelin se le añaden intérpretes y configuración.
  • Node-RED: es el motor de flujos de la Plataforma, que permite la creación y ejecución de flujos visuales. Dispone de una interfaz web, integrada en el control panel, desde la que se pueden orquestar flujos de muy diferentes tipos. Se despliega como un módulo independiente que internamente puede arrancar y gestionar múltiples instancias de Node-RED. Podemos englobar los tipos de flujos en las siguientes categorías:
    • Flujos de información: proporcionan, mediante componentes Node-RED propios de la Onesait Platform acceso a las ontologías de la plataforma, de manera que la información pueda tener como origen y/o destino una ontología, después de ser tratada o enriquecida en el flujo.
    • Orquestación Digital Twins: proporcionan integración con el Digital Twin Broker de la Plataforma, para que todo un sistema externo gestionado como un Digital Twin, pueda ser abstraído y orquestado en el motor de flujos como un nodo más, mediante un componente Node-RED propio de la Onesait Platform. Esto permite de este modo orquestar las comunicaciones y eventos entre diferentes Digital Twins de forma visual.
    • Orquestación de Microservicios: proporcionan integración con los microservicios gestionados desde la Onesait Platform, de manera que cada microservicio puede ser abstraído y orquestado en el motor de flujos como un nodo más, de nuevo mediante un componente Node-RED propio de la Plataforma. Permitiendo de este modo orquestar las comunicaciones y eventos entre diferentes Microservicios de forma visual.
    • Orquestación de Notebooks y Dataflows: mediante componentes de Node-RED propios de la Onesait Platform, permiten invocar a Notebooks y Dataflows desde el motor de flujos.
  • Camunda: proporciona el motor BPM de la Plataforma. Permite la ejecución de flujos de negocio en los que es posible acceder a las ontologías, así como invocar a microservicios gestionados por la Onesait Platform. Se despliega como un módulo propio que internamente puede arrancar múltiples tenants de Camunda.
  • Drools: es el componente para ejecución reglas, que permite crear y gestionar reglas DRL desde el control panel para que se ejecuten integradas con la plataforma ante eventos en una ontología o bajo demanda mediante un API REST. Se despliega como un módulo propio de la Onesait Platform que instancia y gestiona los diferentes Drools Containers.
  • CesiumJS: se trata de la librería que proporciona soporte a la visualización y edición de capas geoespaciales. Se integra en APIs de Javascript que a partir de la información georeferenciada almacenada en las ontologías, permiten la visualización geográfica de la información sobre un navegador sobre WebGL. Dispone de integración total con los Gadgets de la Plataforma, lo que permite incorporar esta visualización en Dashboards.
  • Jasper Reports: permite la creación de Informes a partir de información almacenada en ontologías de Plataforma, de manera que es posible generar bajo demanda o periódicamente cada informe con la información actualizada, para que refleje el estado actual.
  • NGINX: proporciona la función de proxy inverso. Todos los servicios HTTP y REST proporcionados por la Onesait Platform se registran en NGINX y solamente son accesibles desde el exterior a través del puerto seguro expuesto por NGINX. Se despliega como un módulo independiente al que a partir de una imagen de NGINX se le registra toda la configuración de la Plataforma.

Tecnologías de almacenamiento

Se trata de las diferentes tecnologías de almacenamiento que dan soporte a la persistencia de la información de negocio en las ontologías para su consulta y explotación.

En todos los casos, la Onesait Platform proporciona soporte de consulta en SQL aunque el motor de la base de datos en cuestión no lo soporte, abstrayendo a los desarrolladores de los lenguajes de consulta específicos de cada sistema gestor de base de datos.

  • MongoDB/MongoDB Atlas: permiten utilizar MongoDB o MongoDB Atlas como sistema gestor para el almacenamiento en las ontologías. Se asocia a cada ontología de la plataforma una colección de MongoDB.
  • Bases de datos externas: permiten utilizar sistemas gestores de bases de datos relacionales, y facilitan la integración con sistemas legacy que disponen de información previa y quieren explotarla en la Plataforma. Se asocia a cada ontología una tabla o vista. En la actualidad se dispone de conectores con las siguientes bases de datos:
    • Oracle
    • MySQL
    • MariaDB
    • PostgreSQL
    • PostGIS, dando soporte a consultas geográficas.
  • ElasticSearch: proporciona soporte a las ontologías, almacenando información en índices de ElasticSearch. Cada ontología se asocia a un índice de ElasticSearch.
  • Hive, Impala y Kudu: motores de bases de datos apropiados para escenarios analíticos donde el volumen de información es realmente elevado.
  • Kafka: gracias a la persistencia en fichero de los mensajes procesados por Kafka, se puede utilizar también como soporte al almacenamiento de las ontologías actuando como motor de persistencia.

Tecnologías de despliegue y CaaS

Forman parte del ciclo CI/CD de la Plataforma, automatizando la construcción y prueba de los artefactos así como su despliegue en entornos previos y productivos.

  • Jenkins: proporciona soporte automatizado para la compilación, construcción de los artefactos de toda la plataforma, versionado, publicación en repositorios y actualización de entornos.
  • Ansible, Terraform y Helm: son las tecnologías que facilitan la automatización de las tareas de instalación en las diferentes plataformas de contenedores compatibles (Kubernetes, Rancher, Openshift). Reducen el tiempo de instalación de la plataforma y todo su software asociado a unos pocos minutos.
  • Kubernetes, Rancher y Openshift proporcionan un entorno de administración centrado en contenedores. Facilitan y automatizan la orquestación de un clúster de máquinas, redes y almacenamiento, para que los usuarios no tengan que hacerlo. De esta manera, proporcionan el entorno donde ejecutar todos los módulos de la Onesait Platform una vez contenerizados. Rancher 2 y Openshift, se apoyan en Kubernetes y lo extienden con herramientas propias e interfaces web. Facilitan la gestión de los contenedores de forma centralizada, asimismo ofreciendo soporte empresarial.

Bueno, pues estas son las tecnologías que utilizamos en la Onesait Platform a 2020. Esperamos que os hayan parecido interesantes, y si no habéis leído aun las tecnologías de los dos primeros módulos, os animamos a ello.

Esperamos que os haya resultado interesante, y cualquier duda que tengáis dejadnos un comentario.

1 Comment

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *