Publicada Release 2.0.0 (fireball) de onesait Platform

El 6 de abril de 2020 se ha publicado la release 2.0.0 de la onesait Cloud Platform (versión fireballsiguiendo nuestra política de versiones: /wiki/spaces/PT/pages/60326117).

Puedes seguir nuestro roadmap en Roadmap onesait Platform

A continuación puedes ver las principales funcionalidades de esta release:

Engine

Esta versión da soporte al desarrollo de aplicaciones y microservicios, para lo que la plataforma ofrece una consola web centralizada que soporta la administración, configuración y desarrollo de todo tipo de aplicaciones , integrando la creación de aplicaciones, su despliegue sobre la infraestructura CaaS, apificación, visualización,..

En esta release se han incorporado las siguientes funcionalidades:

  • Integración completa de Ontologías con Bases de datos relacionales: a partir de esta release además de poder conectarte a una base de datos relacional y crear la ontología que representa una tabla (más info) puedes crear una Ontología a partir del asistente o de un JSON-schema y que la plataforma cree las tablas, FKs sobre las base de datos que hayas configurado en la conexión JDBC.

   Para esto seleccionaremos:

1.Creación desde base de datos relacional:

2.A la hora de crear la ontología seleccionaré la conexión JDBC y NEW TABLE:

3.Iré indicando los campos con su tipo, configuraciones,... que quiero crear en la ontología:

así como las constraints (PK, FK,...)

donde puedo seleccionar incluso las FKs que un atributo exista en otra tabla de esa base de datos

4.Al finalizar la creación seleccionaré el botón UPDATE SQL que me muestra el SQL que se lanzará sobre la BD subyacente, por si quiero añadir algo o modificar los tamaños de ciertos campos:

5.Finalmente pulsaré GENERATE SCHEMA para que se actualice el JSON-Schema con la definición y pulsaré NEW:

Esto me habrá creado la TABLA en la Base de datos configurada en mi Conexión JDBC. 

Puedes encontrar la guía completa sobre el uso de esta funcionalidad aquí: /wiki/spaces/PT/pages/371490825



  • Soporte GeoJson en Ontologías sobre PostGIS: complementando la funcionalidad anterior, en esta versión se permite tanto conectarnos con una base de datos PostGIS y crear una ontología a partir de una tabla con columnas tipo GEOMETRY o bien crear la tabla a partir de la ontología seleccionada como en este caso:

La Plataforma se encargará de devolver los datos GIS de esta ontología en formato GeoJson (usando la función ST_AsText de PostGIS) para que podamos usar estos atributos geográficos en los visores.

Podemos verlo desde el QueryTool por ejemplo:

Y podemos crear Capas GIS sobre estas ontologías

y añadirlos a nuestros visores GIS:

En este post se explica con más detalle la funcionalidad: /wiki/spaces/PT/pages/491782269



  • Soporte SQL sobre Mongo 4.X en Semantic DataHub: hasta esta versión de plataforma el soporte para ejecutar consultas en SQL a MongoDB estaba limitado a versiones 3.X de Mongo. En esta versión de la plataforma se ha incluido un nuevo SQL Engine que funciona con versiones 4.X de Mongo. Este engine se basa en la librería open-source sql-to-mongo-db-query-converter con la que hemos colaborado para ampliar y mejorar su funcionalidad y a su vez aportar estas mejorasa la comunidad. 

   Este nuevo motor SQL también se puede conectar contra Mongo Atlas.

   Cuando una solución construida sobre plataforma para Mongo 3.X desee pasar a Mongo 4.X se recomienda abrir una petición a la línea de soporte para proceder a la migración que implica fundamentalmente:

-Instalación de Mongo4 y del nuevo SQL Engine

-Ejecución de las queries SQL de la solución sobre el Query Tool para garantizar la retrocompatibilidad o si hay alguna query a revisar/modificar.

-Una vez certificada la compatibilidad se hará la migración de los datos almacenados en Mongo3 a Mongo4 y la desactivación definitiva de Mongo3 y el SQL Engine previo.



  • Arquitectura Plugins en módulo Identity Manager: empezando en esta versión los sistemas construidos sobre Plataforma pueden aprovechar su arquitectura de plugins que permite añadir funcionalidades y extensiones a los diferentes módulos de plataforma simplemente añadiendo una librería Java (JAR) siguiendo unas normas.

   Esta funcionalidad forma parte de la versión Enterprise de Plataforma, y se publicará en la próxima versión (Q2 de 2020) aunque ya se puede testar en PREVIEW en el módulo Identity Manager.

   Una vez desarrollado y empaquetado el plugin este se añade como variable de entorno en el despliegue:

   de modo que el módulo la carga automáticamente:

En este post ¿Cómo crear Plugins para Módulos de Plataforma? podéis encontrar cómo desarrollar y desplegar vuestros propios plugins.



  • Suscripciones SQL/JsonPath a través del Digital Broker: esta funcionalidad permite que un cliente de plataforma pueda suscribirse a "cambios" sobre ontologías, de modo que cuando se cumpla una condición se nos notificará al cliente suscrito. 

   Estas suscripciones pueden definirse desde el Control Panel:

   

   Una vez definida una suscripción un cliente puede suscribirse a estos cambios bien por MQTT, bien por REST (en este caso indicando un callback).

   En esta guía se explica con detalle esta funcionalidad ¿Cómo suscribirte a una ontología?



  • Generación de Microservicios desde ZIP o Repositorio Git: a partir de esta versión se puede seleccionar la creación de mi microservicio desde un ZIP o desde un repositorio Git. Esto me permite tener un catálogo de repositorios Git que puedo usar como plantilla:

A la hora de crear el microservicio desde un repositorio Git se me pedirá la información necesaria para conectarme a ese repositorio, si todo es correcto se me creará un nuevo microservicio a partir de esta configuración.



  • Gestión avanzada de credenciales de usuarios de plataforma: en esta versión se han incluido numerosas mejoras en la gestión de las credenciales de un usuario de plataforma entre las que pueden destacarse:

    • Configuración de longitud mínima de una contraseña y de la complejidad requerida

    • Bloqueo de contraseña tras número de intentos

    • Comprobación de passwords ya usadas previamente

    • Forzar el cambio de contraseña cada X días



  • Integración completa de Kafka con seguridad de plataforma: la plataforma soporta Kafka como uno de los protocolos para la ingesta, hasta ahora la seguridad se centraba en la autenticación del cliente conectado. En esta versión se ha añadido al control de seguridad el uso de ACLs para gestionar la autorización de los datos cuando usamos tópicos Kafka de ingesta. De esta forma al crear un cliente e indicar permisos a las ontologías se aplican las mismas autorizaciones (lectura/escritura/ambas) a los tópicos Kafka. Todo esto se gestiona por la plataforma sobre el Bus Kafka integrado.



  • Migración Flow Engine a NodeRED 1.0.3: se ha actualizado el motor de ejecución del FlowEngine a la última versión de Node-RED (la 1.0.3), esto aporta numerosas mejoras al componente, tanto a nivel del editor de flujos, paso de mensajes asíncronos,.. Podéis revisar las novedades de esta versión en el siguiente enlace: https://nodered.org/blog/2019/09/30/version-1-0-released



  • Gestión de la ConfigDB desde Query Tool: se ha habilitado una opción a nivel de despliegue (por defecto sólo habilitada en Entornos de Desarrollo) que permite que un usuario con rol Administrador en el Control Panel pueda hacer una gestión completa de la ConfigDB desde el propio QueryTool.

Así, un usuario administrador puede conectarse a la ConfigDB, acceder a las tablas 

Y consultar los datos de estas, además de poder hacer INSERT, UPDATE y DELETE sobre estos datos de configuración.



  • Además de un gran número de correcciones y de mejoras de performance identificadas a través de vuestras peticiones al buzón de soporte de plataforma que nos ayudan a mejorar la plataforma día a día.

Intelligence

Esta versión de la plataforma se centra en dar soporte al desarrollo de sistemas y aplicaciones que necesitan usar las capacidades analíticas, de AI o de ingesta distribuida de la plataforma.

En este trimestre nos hemos centrado en:

  • Integración BigQuery con Ontologías: en esta versión se ha incorporado al Semantic DataHub el soporte de BigQuery, lo que nos permite manejar ontologías persistidas sobre esta base de datos de Google:

La integración con BigQuery se ha realizado a través de la arquitectura de Agentes descrita en el siguiente punto.

  • Arquitectura Agentes para conexiones JDBC: La Plataforma ha incorporado una nueva Arquitectura de Agentes JDBC que permite conectar con diversas tecnologías de persistencia ofreciendo un interfaz JDBC hacia plataforma. La plataforma permite a través de esta conexión JDBC ofrecida por el agente la creación de ontologías, lo que habilitar la posibilidad de usar muchas bases de datos con diferente tipología, drivers o incluso con versiones incompatibles de la misma base de datos.

Una vez tenemos el agente creado para mi base de datos origen puedo crear una conexión JDBC en plataforma

y a partir de ahí generar la ontología:

y poder consultarla como cualquier otra:

Podéis encontrar el detalle de la funcionalidad en esta entrada: /wiki/spaces/PT/pages/463208459



  • Soporte despliegue Dashboard Engine en cluster: se ha actualizado la librería Javascript que gestiona la conexión con el Dashboard Engine para que en funcionamientos en cluster del Dashboard si alguno de los nodos queda inoperativo restablezca la conexión de forma transparente contra uno de los nodos.



  • Soporte inclusión de recursos adicionales en Reports: a partir de esta versión asociado a un Report se pueden añadir recursos adicionales, que puede ser subreports, datasources, fuentes,... como se puede ver en la imagen:

En este tutorial se explica con detalle cómo incluir recursos adicionales, incluidos fuentes: How to create Reports with extra resources



  • Soporte creación de Ontologías sobre tablas con mismo nombre: a partir de ahora cuando cree una ontología a partir de una conexión JDBC 

me sugerirá un nombre de ontologia que une el nombre de la conexión y el nombre de la tabla. Puedo en cualquier caso seleccionar otro nombre para la ontología ya que la plataform guarda esta relación:

Things

Esta versión de la plataforma se centra en dar soporte al desarrollo de sistemas IoT, tanto en el ámbito Cloud como Edge.

En este trimestre nos hemos centrado en:

  • Revisión completa de Sinópticos: dentro de esta tarea hemos resuelto diversos bugs e incorporado mejoras identificadas por nuestros compañeros (gracias Sergio). Este motor se está usando ya en varios de nuestros productos:

  • Integración Kafka con seguridad de Dispositivos: se ha mejorado la integración de Kafka con la plataforma, de modo que al clientes Devices en Plataforma que manejan ontologías estos permisos se trasladan a ACLs de Kafka.

DevOps

Dentro de esta categoría incluímos todas las herramientas que ayudan en el Desarrollo y la Operación de la plataforma.

En este trimestre hemos incorporado estas nuevas herramientas: 

  • K8s Deployment with Helm Charts: se han creado unos charts Helm 

que permite automatizar el despliegue de la plataforma sobre OpenShift:



  • Despliegue de Kafka sobre Red Kubernetes y no sobre red anfitrión: en esta versión se han modificada las imágenes referentes a servicios Kafka de plataforma (Zookeeper, Kafka, KSQL, monitorización) para que hagan uso de la red de Docker/Kubernetes. Además hemos simplificado la configuración de todas ellas, permitiendo configurar los servicios con las mismas variables de entorno que Kafka indica en sus imágenes base.

Para más información puedes seguir el siguiente enlace: https://docs.confluent.io/current/installation/docker/config-reference.html



  • Revisión y mejoras en Herramienta Export/Import: se ha completado una revisión de la herramienta de Export/Import añadiendo además la capacidad de exportar e importar Notebooks.

Podéis encontrar el detalle de esta funcionalidad aquí: /wiki/spaces/PT/pages/16973827

  • Uso de MariaDB como base de datos por defecto en ConfigDB: a partir de la versión 2.0 de Plataforma se usa como tecnología de referencia para la ConfigDB MariaDB. Esto no impide usar otras bases de datos, incluída MySQL, ya que la plataforma puede soportar otras bases de datos para almacenar los datos de configuración.

  • APIS de gestión para Proyectos Web y DataSources: se han creado nuevas APIS REST para la gestión de elementos como los Proyectos Web y DataSources, esto permite por ejemplo subir un ZIP con nuestro proyecto web desde un entorno de integración continua invocando a este API.

Open Source Initiative

Esta línea de trabajo contempla todas las tareas relacionadas con la versión Open Source de la Plataforma (Onesait Platform Community).

En este trimestre hemos continuado con la línea lanzada en Q3 de 2019, concretamente:

  • Publicación de la versión 1.1.0-ce de Onesait Platform: la versión Open source de la plataforma está disponible en Github (https://github.com/onesaitplatform/). Además se han incluido nuevos manuales y se han mejorado los existentes, de modo que el usuario de plataforma tenga más sencillo ejecutar y usar la plataforma.