SIU-Arai/registry

De SIU
Saltar a: navegación, buscar
Siu-arai iso.png

SIU-Arai: Registry

El repositorio central 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.
Nota: todo componente, módulo y/o aplicación del SIU que se conecta a la plataforma implementa arai-cli.

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.
Registry-figura-1.png
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
./bin/arai-cli registry:add
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:
  • una aplicación
  • si provee o consume un servicio (como de SSO),
  • si provee y/o consume una API tipo rest
En los casos que sea necesario, el módulo indica también su punto de acceso (conocido como endpoint), así como las credenciales que posee o con las cuales desea consumir algo.
Nota: el comando registry:add sólo se ejecuta la primera vez. Luego se utiliza un comando distinto para mantener sincronizado los datos.
Registry-figura-2.png
Una vez registrado el módulo, se procede a su sincronización con el catálogo de servicios en Registry. Para ello se ejecuta otro comando, registry:sync
./bin/arai-cli registry:sync
que se encarga de tomar las definiciones del módulo y procesarlas (si ofrece servicios, informarle sobre posibles consumidores; si los consume, informarle de los puntos de acceso y mecanismos de autenticación, etc).
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.
Registry-figura-3.png
A partir de este punto el Módulo X es capaz de conectarse de forma directa al Módulo Y para consumir sus recursos (por ej, una API rest). En tal caso, las credenciales del cliente serán conocidas para el servidor, lo que validará el intento de acceso a dicho recurso.
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.
Registry-figura-4.png
El catálogo de servicios Registry, como se explicó hasta ahora, no se entromete en la comunicación directa entre los módulos de la plataforma. Simplemente brinda un mecanismo de descubrimiento y configuración de servicios. Toda la comunicación posterior entre módulos, pasa de forma desapercibida para el resto la plataforma.

Uso básico

Existe un comando de administración básico que irá creciendo a través de las versiones.

ablanco@debian:~/arai-registry$ bin/console
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:

ablanco@debian:~/arai-registry$ bin/console packages:list
+---------------------+-------------------+-------------------+
| 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:

bin/console packages:remove <id de instancia>

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.


<Volver