Ir al contenido
JelinaJelina DocumentationDocumentación técnica
Volver al sitio oficial

Aplicaciones nativas y conjuntos de programas

En las instalaciones industriales siguen utilizándose muchos programas tradicionales: scripts de adquisición, demonios de conversión de protocolos y binarios de terceros. A menudo se inician manualmente, funcionan por separado y sus fallos pasan inadvertidos. JelinaOS los incorpora a un sistema unificado de administración declarativa, el conjunto de programas (ProgramSet), que aporta administración mediante configuración, recuperación automática e inicio con el sistema.

Es una colección de aplicaciones sin contenedores; cada una se describe mediante configuración declarativa:

  • Inicio: comando, directorio de trabajo e identidad de ejecución;
  • Origen del programa: el paquete se obtiene desde la dirección de descarga especificada en la configuración de la versión;
  • Política de ejecución: política de reinicio, variables de entorno y señal de parada;
  • Dependencias: orden de inicio, exclusión mutua y dependencias fuertes o débiles;
  • Supervisión: límites de reinicio, permanencia tras la salida y comandos previos y posteriores.

Una vez configuradas, el sistema administra las aplicaciones sin necesidad de escribir scripts de inicio manuales.

La configuración de los conjuntos de programas se realiza en la nube o mediante la interfaz de administración local; el agente se encarga de ejecutarla:

Método Uso previsto Descripción
Versión en la nube (recomendado) Dispositivos conectados a JelinaCloud Declara el conjunto de programas al crear una Release y distribúyelo por lotes junto con la versión
Interfaz de administración local Entornos locales o aislados Envía la configuración deseada mediante la interfaz local del dispositivo

El siguiente ejemplo declara un conjunto de programas en una versión de la nube; el paquete se distribuye mediante una dirección de descarga:

programs:
collector:
uri: http://files.example.com/collector/collector.tar.gz # URL de descarga del paquete
command: collector --config /data/collector.conf
running: true
restart: always
environment:
SITE_ID: plant-01
working_directory: /opt/collector
user: root
  • command: comando de inicio, obligatorio;
  • running: indica si debe ejecutarse; el valor predeterminado es true;
  • restart: política de reinicio; always reinicia automáticamente el programa tras una salida anómala;
  • environment: variables de entorno;
  • working_directory: directorio de trabajo.
Configuración Descripción
uri Dirección de descarga del paquete
command Comando de inicio, obligatorio
running Indica si debe ejecutarse; valor predeterminado true
restart Política de reinicio: no, on-failure, always, etc.
environment Variables de entorno
working_directory Directorio de trabajo
user / group Identidad de ejecución
after / before, wants / requires, conflicts Dependencias y orden de ejecución
start_limit_*, remain_after_exit, exec_start_*, etc. Comportamiento de supervisión y recuperación

Para consultar todos los campos, véase Compatibilidad y extensiones de docker-compose.

Configuración avanzada: inicio automático y condiciones

Sección titulada «Configuración avanzada: inicio automático y condiciones»
programs:
myapp:
command: run.sh
restart: always
Install:
WantedBy: multi-user.target # Iniciar al arrancar
Unit:
ConditionPathExists: /data/app/config.json # Condición: iniciar solo si existe el archivo de configuración

El agente administra los programas de forma centralizada y los ejecuta como servicios del sistema. Para consultar u operar sobre un servicio, utiliza su nombre conforme a las reglas de nomenclatura del sistema; puedes consultar el nombre real con los comandos de estado del dispositivo:

Terminal window
systemctl status <nombre-del-servicio-del-programa> # Consultar el estado; utilizar el nombre de servicio mostrado en el dispositivo
systemctl restart <nombre-del-servicio-del-programa> # Reiniciar
systemctl stop <nombre-del-servicio-del-programa> # Detener
  • Programas industriales tradicionales: administración moderna de demonios de adquisición, control y comunicaciones;
  • Scripts y herramientas: incorporación de scripts temporales a la administración formal con recuperación automática;
  • Arquitecturas híbridas: coordinación con aplicaciones en contenedores mediante un mismo sistema de orquestación.

Elegir entre aplicaciones nativas y contenedores

Sección titulada «Elegir entre aplicaciones nativas y contenedores»
Situación Recomendación
Acceso directo al hardware o requisitos estrictos de tiempo real Aplicación nativa (conjunto de programas)
Programas tradicionales existentes y sensibilidad al coste de migración Aplicación nativa (conjunto de programas)
Varios lenguajes, muchas dependencias y necesidad de aislar entornos Aplicación en contenedor
Arquitectura moderna de microservicios e iteración rápida Aplicación en contenedor