Zum Inhalt springen
JelinaJelina DocumentationTechnische Dokumentation
Zur Website

Einstiegsleitfaden

Die Jelina-Plattform umfasst Geräte-, Server- und Clientsoftware. Gemeinsam ermöglichen diese Komponenten die sichere Bereitstellung Ihres Codes auf einer Gerätegruppe.

Das Grundprinzip ist einfach: Sobald Ihre Geräte unser Betriebssystem JelinaOS verwenden, können sämtliche Geräte und Anwendungen über das JelinaCloud-Dashboard verwaltet, überwacht und aktualisiert werden. JelinaCloud speichert Anwendungskonfigurationen in einer eigenständigen Einheit und liefert sie an Ihre Flotte aus, um die Bereitstellung zu vereinfachen.

Dieser Leitfaden erläutert die Komponenten und Abläufe einer typischen Jelina-Bereitstellung und bietet genügend Hintergrundwissen, um häufige Fragen zur internen Funktionsweise zu beantworten.

Wenn Sie selbst ein Projekt umsetzen möchten, beginnen Sie mit den Voraussetzungen.

image

Geräte im Jelina-Ökosystem verwenden JelinaOS, ein schlankes Hostbetriebssystem auf Basis der Standarddistributionen Debian oder Ubuntu, zusammen mit der Container-Engine Docker. Das Hostbetriebssystem startet Jelinvisor, den Geräteagenten, sowie Ihre Containerdienste und nativen Programmdienste. Auf jeder Jelina-Betriebssystembasis können Docker-Images und Linux-ELF-Programme ausgeführt werden, die zur Gerätearchitektur passen. Die Basisbetriebssysteme teilen sich den Kernel des Hosts, arbeiten ansonsten jedoch unabhängig. Sie können Containerdienste konfigurieren, sodass sie privilegiert laufen, direkt auf Hardware zugreifen oder Module in den Kernel laden. Die Jelina-Geräteverwaltung läuft in einem eigenen Container und hält das Gerät auch dann betriebsfähig, wenn eine Anwendung abstürzt.

Jelina strebt vollständige Aktualisierbarkeit an. System und Kernel von JelinaOS werden unabhängig aktualisiert und besitzen jeweils eigene A/B-Partitionen. Läuft das Gerät mit Partition A, wird ein Update in Partition B geschrieben. Nach erfolgreicher Aktualisierung schaltet es auf B um. Schlägt das Update fehl oder tritt nach der Umschaltung ein unerwarteter Fehler auf, bleibt das Gerät auf A beziehungsweise kehrt dorthin zurück. Mindestens eine Partition bleibt stets nutzbar, um Anwendungen und Daten zu schützen.

Alle Geräte mit JelinaOS unterstützen System- und Kernelupdates, sowohl Entwicklungs- als auch Produktionsgeräte. Sie steuern die Aktualisierung über das JelinaCloud-Dashboard.

Wie fügen Sie ein Gerät Ihrer Flotte hinzu?

Laden Sie zunächst ein JelinaOS-Image herunter. Bei jedem Download wird eine eindeutige Gerätekonfiguration in das Image geschrieben. Wenn bereits ein Image vorhanden ist, können Sie auch nur die Konfigurationsdatei herunterladen und sie mit dem bereitgestellten Werkzeug jelina_flash_stream in das Image schreiben; dieses Werkzeug ist derzeit nicht freigegeben. Die Konfiguration enthält grundlegende Flotteneinstellungen, einen eindeutigen an die Flotte gebundenen Registrierungsschlüssel und die Registrierungsadresse.

Stellen Sie nach dem Flashen des JelinaOS-Images sicher, dass das Gerät über eine funktionierende Netzwerkverbindung verfügt. Beim Start wird der Geräteagent Jelinvisor gestartet und registriert das Gerät automatisch, ohne weitere Bedienung. Anhand der Konfiguration ordnet er das Gerät der Zielflotte zu und erzeugt einen eindeutigen API-Key für die spätere Cloud-Kommunikation. Nach erfolgreicher Registrierung speichert die Cloud den API-Key, löscht den Registrierungsschlüssel und hält die Geräteinformationen vor. Das Gerät ist anschließend im Dashboard sichtbar.

Nach der Registrierung in einer Flotte installiert das Gerät automatisch deren neuestes verfügbares Release. Wenn für die Flotte ein festes Release eingestellt wurde, wird dieses installiert.

Ein Release ist eine Zusammenstellung mehrerer Containeranwendungen und nativer Anwendungen (Program). Seine Konfiguration basiert auf docker-compose 2.0 und wurde um Einstellungen für nicht containerisierte Anwendungen erweitert. Entwickler können Compose-Konfigurationen manuell eingeben; Benutzer ohne Entwicklungserfahrung können sie über die Dienstliste der Oberfläche erzeugen. Nach Abschluss der Konfiguration laden Sie Container-Images und Programmdateien hoch. Sobald das Release veröffentlicht ist, kann es auf allen Geräten der Flotte bereitgestellt werden.

Falls einer nativen Anwendung die benötigte Laufzeitumgebung fehlt, können Sie diese über ein hochgeladenes Increment, also ein inkrementelles Paket, konfigurieren.

Hinweis: Ein Increment wird vom Gerät zu JelinaCloud hochgeladen. Konfigurieren Sie zunächst die Laufzeitumgebung auf einem Gerät und wählen Sie im Dashboard dieses Gerät für den Increment-Upload aus. Es paketiert seine Umgebung und lädt sie in seine Flotte hoch.

Damit das Increment wirksam wird, müssen Sie es mit einem Release verknüpfen. Vor der Installation dieses Releases installiert das Gerät zuerst das zugehörige Increment, sodass die Anwendungen die richtige Laufzeitumgebung erhalten. Mit inkrementellen Paketen kann JelinaOS theoretisch jede Anwendungsart ausführen; entscheidend sind die im Increment enthaltenen Inhalte.

Das Gerät ruft regelmäßig den Sollzustand aus der Cloud ab; das Intervall hängt von der Flottenkonfiguration ab. Der Sollzustand enthält die vorgesehenen Versionen von Release, JelinaOS, Kernel und Jelinvisor, das anzuwendende Increment sowie Gerätekonfiguration und Dienstvariablen.

Alle 30 Sekunden meldet das Gerät seinen eigenen Zustand, darunter Geräteinformationen und Informationen zu laufenden Diensten. Zusätzlich überträgt es Geräteprotokolle über eine dauerhafte Verbindung an JelinaCloud, damit Sie den Betrieb von System und Anwendungen verfolgen können.

Das Gerätedashboard zeigt detaillierte Informationen wie laufende Dienste, anstehende Updates und Geräteprotokolle. Dort können Sie auch das Gerät und den Lebenszyklus seiner Anwendungen steuern.

image-20220728164831644

Wenn ein Gerät offline geht oder Störungen an Gerät, Diensten oder Ressourcennutzung auftreten, werden automatisch alle Mitglieder seiner Flotte benachrichtigt. Die Warnschwellen für die Ressourcennutzung sind konfigurierbar. Tritt dieselbe Störung innerhalb von drei Stunden mehrfach auf, sendet JelinaCloud nur eine Benachrichtigung.

image-20220728170901640

Mit Jelina können Sie Test- und Entwicklungsumgebungen einheitlich konfigurieren, Anwendungen schnell bereitstellen und ihre Funktionen testen. Geräteprotokolle helfen, das Verhalten auf realer Hardware zügig zu analysieren und die praktische Umsetzung eines Projekts zu beschleunigen.