Diferencia entre revisiones de «SIU-Arai/registry»

De SIU
Saltar a: navegación, buscar
(Página creada con «= Arai-Registry =»)
 
m
 
(No se muestran 12 ediciones intermedias de 4 usuarios)
Línea 1: Línea 1:
= Arai-Registry =
+
[[Archivo:siu-arai_iso.png|derecha|link=SIU-Arai]]
 +
 
 +
= 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).<br>Entre otras funcionalidades permite
 +
* controlar dependencias de servicio
 +
* proveer configuraciones
 +
* monitorear y ayudar a diagnosticar los servicios instalados.
 +
<blockquote>Nota: todo componente, módulo y/o aplicación del SIU que se conecta a la plataforma implementa [[SIU-Arai/arai-cli|arai-cli]].</blockquote>
 +
 
 +
==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">
 +
./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:
 +
*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.<blockquote>Nota: el comando '''registry:add''' sólo se ejecuta la primera vez. Luego se utiliza un comando distinto para mantener sincronizado los datos.</blockquote>[[Archivo:Registry-figura-2.png|no|miniaturadeimagen|732x732px|link=]]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'''<syntaxhighlight lang="bash" enclose="div">
 +
./bin/arai-cli registry:sync
 +
</syntaxhighlight>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).<blockquote>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'''.</blockquote>[[Archivo:Registry-figura-3.png|no|miniaturadeimagen|732x732px|link=]]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.<blockquote>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'''.</blockquote>[[Archivo:Registry-figura-4.png|no|miniaturadeimagen|602x602px|link=]]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.
 +
 
 +
<syntaxhighlight lang="bash" enclose="div">
 +
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
 +
</syntaxhighlight>
 +
 
 +
=== Listando paquetes registrado ===
 +
A medida que se van registrando paquetes se podrán ver aparecer ejecutando:
 +
<syntaxhighlight lang="bash" enclose="div">
 +
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  |
 +
+---------------------+-------------------+-------------------+
 +
 
 +
</syntaxhighlight>
 +
 
 +
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.<br>
 +
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.<br>
 +
Para borrar un paquete se ejecuta el siguiente comando:
 +
<syntaxhighlight lang="bash" enclose="div">
 +
bin/console packages:remove <id de instancia>
 +
</syntaxhighlight>
 +
 
 +
== Funcionamiento ==
 +
Todos los sistemas que se quieren sumar a Registry deben definir un archivo llamado '''arai.json'''.<br>
 +
En este archivo se especifica lo que consume y lo que provee cada paquete. A los consumos y provisiones se los llama '''features'''.<br>
 +
Los servicios, apis y aplicaciones que estan disponibles en el repositorio son ejemplos de '''features'''.
 +
 
 +
 
 +
[[SIU-Arai/Arquitectura|<Volver]]

Revisión actual del 16:53 3 may 2018

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