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

Guía de inicio

La plataforma Jelina incluye software para dispositivos, servidores y clientes, diseñado para implementar tu código con seguridad en un conjunto de dispositivos.

La idea general es sencilla: una vez instalado JelinaOS, puedes administrar, supervisar y actualizar todos tus dispositivos y aplicaciones desde el panel de JelinaCloud. JelinaCloud almacena la configuración de las aplicaciones en un bloque independiente y la entrega a la flota para facilitar la implementación.

Esta guía explica los componentes y los procedimientos de una implementación habitual de Jelina, con suficiente detalle para responder a las preguntas más comunes sobre su funcionamiento interno.

Cuando estés listo, empieza tu propio proyecto.

JelinaOS en el dispositivo de borde

Los dispositivos del ecosistema Jelina ejecutan JelinaOS, un sistema operativo anfitrión mínimo basado en Debian o Ubuntu e integrado con el motor de contenedores Docker. El sistema anfitrión inicia Jelinvisor, el supervisor del dispositivo, los servicios en contenedores y los servicios de programas. Cada sistema base de Jelina puede ejecutar cualquier imagen de Docker o programa Linux ELF compatible con la arquitectura del dispositivo. El sistema base comparte el kernel con el anfitrión, pero funciona de forma independiente en los demás aspectos. Puedes configurar los servicios en contenedores con privilegios para acceder directamente al hardware e incluso insertar módulos en el kernel. El administrador de dispositivos Jelina se ejecuta en su propio contenedor y permite mantener el dispositivo en funcionamiento aunque una aplicación falle.

Jelina tiene como objetivo permitir la actualización del 100 % del sistema. JelinaOS actualiza el sistema y el kernel de forma independiente, cada uno con sus propias particiones A/B. Si el dispositivo ejecuta la partición A, la versión de destino se escribe en B y, tras una actualización correcta, se cambia a B. Si la actualización falla o surge un error desconocido después de la conmutación, se mantiene o se recupera A. Jelina conserva siempre al menos una partición utilizable para proteger las aplicaciones y los datos.

Todos los dispositivos JelinaOS, de desarrollo o producción, pueden actualizar el sistema y el kernel desde el panel de JelinaCloud.

¿Cómo se incorpora un dispositivo a tu flota?

Primero descarga la imagen de JelinaOS. En cada descarga se graba una configuración única del dispositivo en la imagen. Si ya tienes la imagen, puedes descargar solo el archivo de configuración y grabarlo con jelina_flash_stream, una herramienta todavía no disponible públicamente. La configuración contiene los ajustes básicos de la flota, una clave de registro única vinculada a ella y la dirección de registro.

Después de grabar la imagen en el dispositivo, asegúrate de que tenga conectividad. Al arrancar, se inicia Jelinvisor y completa el registro automáticamente, sin intervención. Registra el dispositivo en la flota indicada y genera una API Key única para las comunicaciones posteriores con la nube. Tras el registro, la nube guarda la API Key, elimina la clave de registro y conserva la información del dispositivo, que ya puede verse en el panel.

Después de registrarse en una flota, si existe una Release disponible, el dispositivo instala automáticamente la más reciente. Si has fijado una Release para la flota, instala esa versión.

Una Release es un conjunto de varias aplicaciones en contenedores y aplicaciones nativas (Program). Su configuración se basa en docker-compose 2.0, ampliado con opciones para aplicaciones sin contenedores. Está dirigida tanto a desarrolladores como a usuarios sin conocimientos de desarrollo: puedes escribir manualmente la configuración Compose o generarla rellenando la lista de servicios de la interfaz. Después de configurarla, carga las imágenes de contenedor y las aplicaciones nativas. Una vez publicada, la Release puede implementarse en todos los dispositivos de la flota.

Si una aplicación nativa necesita un entorno de ejecución específico, puedes configurarlo mediante la carga de un Increment, o paquete incremental.

Nota: los dispositivos cargan los Increment en JelinaCloud. Configura primero el entorno de ejecución en un dispositivo y selecciónalo en el panel para cargar el Increment. El dispositivo empaqueta su entorno y lo sube a la flota a la que pertenece.

Debes vincular el Increment a una Release para que se aplique. Antes de instalar esa Release, el dispositivo instala el Increment asociado para garantizar el entorno adecuado a sus aplicaciones. En teoría, los paquetes incrementales permiten ejecutar cualquier tipo de aplicación en JelinaOS, según el contenido del paquete.

El dispositivo consulta periódicamente su estado deseado en la nube, con una frecuencia definida por la configuración de la flota. Este estado incluye las versiones de Release, JelinaOS, Kernel y Jelinvisor, el Increment que debe ejecutarse, la configuración del dispositivo y las variables de servicios.

Cada 30 segundos, el dispositivo informa de su estado, incluidos sus datos y los servicios en ejecución. También carga registros en JelinaCloud mediante una conexión persistente para que puedas observar el funcionamiento del sistema y de las aplicaciones.

El panel muestra los detalles del dispositivo, sus servicios, las próximas actualizaciones y los registros. Desde él también puedes controlar el ciclo de vida del dispositivo y de las aplicaciones.

Panel del dispositivo con servicios, actualizaciones y registros

Para informar a tiempo de problemas en dispositivos y aplicaciones, JelinaCloud notifica automáticamente a todos los miembros de la flota cuando un dispositivo queda fuera de línea o presenta anomalías en servicios, funcionamiento o uso de recursos. Puedes personalizar los umbrales de alerta de recursos. Si se repite la misma anomalía en un plazo de tres horas, solo se envía una notificación.

Notificaciones de anomalías del dispositivo

Jelina permite configurar de forma uniforme los entornos de prueba y desarrollo e implementar rápidamente aplicaciones para comprobar sus funciones. Los registros permiten analizar su comportamiento en dispositivos reales y acelerar la puesta en práctica del proyecto.