- Jelina-Überblick
- JelinaOS
- Anwendungsverwaltung
Native Anwendungen und Programmsammlungen
An industriellen Standorten laufen viele Programme auf herkömmliche Weise: Datenerfassungsskripte, Daemons zur Protokollumsetzung oder Binärprogramme von Drittanbietern. Bisher wurden sie manuell gestartet, arbeiteten unabhängig voneinander und fielen mitunter unbemerkt aus. JelinaOS integriert sie in ein einheitliches deklaratives Verwaltungssystem: die Programmsammlung (ProgramSet). So profitieren auch bestehende Programme von konfigurationsbasierter Verwaltung, automatischer Fehlerbehebung und automatischem Start zusammen mit dem System.
Was ist eine Programmsammlung?
Abschnitt betitelt „Was ist eine Programmsammlung?“Eine Programmsammlung umfasst mehrere nicht containerisierte Anwendungen. Jede Anwendung wird durch eine deklarative Konfiguration beschrieben:
- Startverhalten: Befehl, Arbeitsverzeichnis und Ausführungsidentität;
- Programmquelle: Das Programmpaket wird über die Download-Adresse in der Release-Konfiguration bezogen;
- Betriebsrichtlinien: Neustartrichtlinie, Umgebungsvariablen und Stoppsignal;
- Abhängigkeiten: Startreihenfolge, gegenseitiger Ausschluss sowie starke und schwache Abhängigkeiten;
- Überwachungsfunktionen: Neustartbegrenzung, Beibehaltung des aktiven Zustands nach Prozessende sowie vor- und nachgelagerte Befehle.
Nach der Konfiguration werden die Anwendungen zentral vom System verwaltet. Startskripte müssen nicht manuell geschrieben werden.
Konfigurationszugang
Abschnitt betitelt „Konfigurationszugang“Programmsammlungen werden über die Cloud oder die lokale Verwaltungsschnittstelle konfiguriert. Der Geräteagent übernimmt die Ausführung:
| Zugang | Einsatzbereich | Beschreibung |
|---|---|---|
| Release aus der Cloud (empfohlen) | Anbindung an JelinaCloud | Programmsammlung beim Erstellen eines Releases deklarieren und zusammen mit dem Release an mehrere Geräte verteilen |
| Lokale Verwaltungsschnittstelle | Lokale / isolierte Umgebung | Zielkonfiguration über die lokale Verwaltungsschnittstelle des Geräts übermitteln |
Schnellstart
Abschnitt betitelt „Schnellstart“Das folgende Beispiel zeigt die Deklaration einer Programmsammlung in einem Cloud-Release. Das Programmpaket wird über eine Download-Adresse verteilt:
programs: collector: uri: http://files.example.com/collector/collector.tar.gz # Downloadadresse des Programmpakets command: collector --config /data/collector.conf running: true restart: always environment: SITE_ID: plant-01 working_directory: /opt/collector user: rootcommand: Startbefehl (Pflichtfeld);running: Gibt an, ob das Programm ausgeführt werden soll; Standardwert:true;restart: Neustartrichtlinie;alwaysbewirkt einen automatischen Neustart nach unerwarteter Beendigung;environment: Umgebungsvariablen;working_directory: Arbeitsverzeichnis.
Häufig verwendete Einstellungen
Abschnitt betitelt „Häufig verwendete Einstellungen“| Einstellung | Beschreibung |
|---|---|
uri |
Download-Adresse des Programmpakets |
command |
Startbefehl (Pflichtfeld) |
running |
Gibt an, ob das Programm ausgeführt werden soll; Standardwert: true |
restart |
Neustartrichtlinie: unter anderem no / on-failure / always |
environment |
Umgebungsvariablen |
working_directory |
Arbeitsverzeichnis |
user / group |
Ausführungsidentität |
after / before, wants / requires, conflicts |
Abhängigkeiten und Reihenfolge |
Unter anderem start_limit_*, remain_after_exit, exec_start_* |
Überwachungs- und Wiederherstellungsverhalten |
Die vollständige Feldbeschreibung finden Sie unter docker-compose-Kompatibilität und Erweiterungen.
Erweiterte Konfiguration: automatischer Systemstart und Bedingungsprüfungen
Abschnitt betitelt „Erweiterte Konfiguration: automatischer Systemstart und Bedingungsprüfungen“programs: myapp: command: run.sh restart: always Install: WantedBy: multi-user.target # Beim Systemstart automatisch starten Unit: ConditionPathExists: /data/app/config.json # Nur starten, wenn die Konfigurationsdatei vorhanden istVerwaltungsaktionen
Abschnitt betitelt „Verwaltungsaktionen“Anwendungen einer Programmsammlung werden zentral vom Geräteagenten betreut und als Systemdienste ausgeführt. Bei der Überprüfung und Bedienung der Dienste gelten die Namensregeln des Systems. Die tatsächlichen Dienstnamen können Sie mit den Gerätestatusbefehlen ermitteln:
systemctl status <Dienstname-der-Programmsammlung> # Status anzeigen; tatsächlichen Dienstnamen auf dem Gerät prüfensystemctl restart <Dienstname-der-Programmsammlung> # Neu startensystemctl stop <Dienstname-der-Programmsammlung> # AnhaltenEinsatzbereiche
Abschnitt betitelt „Einsatzbereiche“- Herkömmliche Industrieprogramme: Moderne Verwaltung von Daemons für Datenerfassung, Steuerung und Kommunikation;
- Skripte und Werkzeugketten: Vorübergehend eingesetzte Skripte in eine geregelte Verwaltung mit automatischer Wiederherstellung bei Fehlern überführen;
- Hybride Architekturen: Zusammenarbeit mit Containeranwendungen innerhalb desselben Orchestrierungssystems.
Auswahl zwischen nativen Anwendungen und Containeranwendungen
Abschnitt betitelt „Auswahl zwischen nativen Anwendungen und Containeranwendungen“| Szenario | Empfehlung |
|---|---|
| Direkter Hardwarezugriff und hohe Echtzeitanforderungen | Native Anwendung (Programmsammlung) |
| Vorhandene herkömmliche Programme und hohe Sensibilität für Migrationskosten | Native Anwendung (Programmsammlung) |
| Mehrere Programmiersprachen, viele Abhängigkeiten und erforderliche Umgebungsisolation | Containeranwendung |
| Moderne Microservice-Architektur und schnelle Iteration | Containeranwendung |