SIU-Arai/registry

De SIU
Saltar a: navegación, buscar

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.

Descarga

El proyecto está disponible en https://hub.siu.edu.ar ``` git clone https://hub.siu.edu.ar/siu-arai/arai-registry.git ``` Utilizamos GitFlow, la última versión estable del proyecto es apuntada por el branch master y por cada versión que se saca se crea un tag.

Instalación

La documentación de instalación básica se encuentra dentro del proyecto en la carpeta doc. No se explica acá porque probablemente vaya cambiando con las versiones.

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.

registry:add [-m|--maintainer MAINTAINER] [-e|--maintainer-email MAINTAINER-EMAIL] [-i|--nombre-instancia [NOMBRE-INSTANCIA]] [-f|--force-register [FORCE-REGISTER]] [--] <url>

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.

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>