Diferencia entre revisiones de «SIU-Arai/registry»
m |
m |
||
Línea 7: | Línea 7: | ||
==Plataforma para configuración de Dependencias y Servicios== | ==Plataforma para configuración de Dependencias y Servicios== | ||
− | + | La plataforma cuenta con Registry como un componente dedicado al manejo del catálogo de dependencias y servicios, así como su configuración. Tomemos como ejemplo la comunicación entre dos módulos, X e Y. Para que esto suceda, se tiene que resolver una serie de requerimientos como ser la autenticación, la ruta de acceso, entre otros. Se establece que el '''Módulo Y''' ya se encuentra registrado previamente a la plataforma.[[Archivo:Registry-figura-1.png|miniaturadeimagen|612x612px|link=|no]]Para lograr esta tarea, por medio de la librería arai-cli cada sistema desarrollado por el SIU cuenta con una serie de comandos de consola que permiten registrar un módulo a la plataforma SIU-Araí. El primero es '''registry:add''' <syntaxhighlight lang="bash" enclose="div"> | |
− | |||
− | Para lograr esta tarea, por medio de la librería arai-cli cada sistema desarrollado por el SIU cuenta con una serie de comandos de consola que permiten registrar un módulo a la plataforma SIU-Araí. El primero es '''registry:add''' <syntaxhighlight lang="bash" enclose="div"> | ||
./bin/arai-cli registry:add | ./bin/arai-cli registry:add | ||
</syntaxhighlight>y lo que realiza es el registro del módulo en el catálogo de servicios de Registry. Al registrar, el módulo indica si se trata de: | </syntaxhighlight>y lo que realiza es el registro del módulo en el catálogo de servicios de Registry. Al registrar, el módulo indica si se trata de: |
Revisión del 16:43 16 abr 2018
Sumario
SIU-Arai: Registry
Repositorio de servicios y aplicaciones.
Es un catálogo de las APIs, aplicaciones y servicios en general instalados en una institución (dentro del SOA governance).
Entre otras funcionalidades permite controlar dependencias de servicio, proveer configuraciones, monitorear y ayudar a diagnosticar los servicios instalados.
Plataforma para configuración de Dependencias y Servicios
La plataforma cuenta con Registry como un componente dedicado al manejo del catálogo de dependencias y servicios, así como su configuración. Tomemos como ejemplo la comunicación entre dos módulos, X e Y. Para que esto suceda, se tiene que resolver una serie de requerimientos como ser la autenticación, la ruta de acceso, entre otros. Se establece que el Módulo Y ya se encuentra registrado previamente a la plataforma.- una aplicación
- si provee o consume un servicio (como de SSO),
- si provee y/o consume una API tipo rest
Nota: el comando registry:add sólo se ejecuta la primera vez. Luego se utiliza un comando distinto para mantener sincronizado los datos.
Nota: siempre que los datos de acceso del módulo cambien, se incorporen nuevos proveedores o consumidores, se ha de ejecutar la sincronización para actualizar los datos. Registry de ninguna forma enviará esta información de manera pro-activa, como en el caso del ejemplo para informar al Módulo Y.
Nota: este ejemplo supone que Módulo Y ya se registró al catálogo de servicios de Registry como proveedor de una API rest. También supone que se ejecutó una sincronización en Módulo Y luego de haberse sincronizado el Módulo X.
Funcionamiento
Todos los sistemas que se quieren sumar a Registry deben definir un archivo llamado arai.json.
En este archivo se especifica lo que consume y lo que provee cada paquete. A los consumos y provisiones se los llama features.
Los servicios, apis y aplicaciones que estan disponibles en el repositorio son ejemplos de features.
Agregando un paquete a Registry
Cuando un módulo ejecuta el comando arai-cli registry:add agrega un paquete a registry.
El servidor registra todo lo que provee y consume este paquete.
Sincronización
Cuando un módulo ejecuta el comando arai-cli registry:sync sincroniza sus dependencias automáticamente.
Al ejecutar este comando el cliente viaja hasta Registry y trae toda la información disponible de sus consumos. Cuando vuelve la información del servidor se ejecuta una serie de hooks que utiliza el cliente para autoconfigurarse.
De esta manera cuando se agrega un servicio nuevo a la plataforma alcanza con ejecutar arai-cli registry:sync en los módulos que se deben actualizar.
Vale la pena notar que la sincronización no es automática. Se debe ejecutar el comando en todos los sistemas que están involucrados.
Uso básico
Existe un comando de administración básico que irá creciendo a través de las versiones.
SIU Arai Cli version v1.0.1
Usage:
command [options] [arguments]
Options:
-h, --help Display this help message
-q, --quiet Do not output any message
-V, --version Display this application version
--ansi Force ANSI output
--no-ansi Disable ANSI output
-n, --no-interaction Do not ask any interactive question
--profile Mostrar tiempos y uso de memoria
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
Available commands:
help Displays help for a command
list Lists commands
packages
packages:list Muestra la lista de ids de paquetes registrados en Registry
packages:remove Desregistra una paquete de registry
schema
schema:create Crea la estructura del schema
schema:empty Vacia los datos
Listando paquetes registrado
A medida que se van registrando paquetes se podrán ver aparecer ejecutando:
+---------------------+-------------------+-------------------+
| ID Instancia | Nombre | Descripción |
+---------------------+-------------------+-------------------+
| siu/arai-usuarios_1 | siu/arai-usuarios | SIU-Arai Usuarios |
| siu/huarpe_1 | siu/huarpe | SIU-Huarpe Core |
+---------------------+-------------------+-------------------+
A los paquetes que se van registrando se les asigna un Id de Instancia. Este id es único por base de Registry e identifica unívocamente a una instalación de un paquete.
Desde Araí-Usuarios se podrá ver este id y asociarlo con usuarios.
Borrando paquetes
Si en algún momento ocurre algún error al momento de la registración de un paquete este se puede borrar para volver a intentarlo.
Para borrar un paquete se ejecuta el siguiente comando: