- Visión general de Jelina
- JelinaOS
- Gestión de aplicaciones
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.
Qué es un conjunto de programas
Sección titulada «Qué es un conjunto de programas»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.
Dónde configurar
Sección titulada «Dónde configurar»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 |
Inicio rápido
Sección titulada «Inicio rápido»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: rootcommand: comando de inicio, obligatorio;running: indica si debe ejecutarse; el valor predeterminado estrue;restart: política de reinicio;alwaysreinicia automáticamente el programa tras una salida anómala;environment: variables de entorno;working_directory: directorio de trabajo.
Configuración habitual
Sección titulada «Configuración habitual»| 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ónOperaciones de administración
Sección titulada «Operaciones de administració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:
systemctl status <nombre-del-servicio-del-programa> # Consultar el estado; utilizar el nombre de servicio mostrado en el dispositivosystemctl restart <nombre-del-servicio-del-programa> # Reiniciarsystemctl stop <nombre-del-servicio-del-programa> # DetenerCasos de uso
Sección titulada «Casos de uso»- 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 |