Wie es funktioniert

Mender unterstützt sowohl stabile Updates auf Systemebene
 als auch Anwendungsupdates.

Architektur

Die Mender-Architektur besteht aus zwei Komponenten:
Server und Client (Gerät).

Mender-Server

Der Mender-Server speichert und steuert die Verteilung von OTA-Softwareupdates auf Ihre Geräte. Sie können entweder die Web-UI von Mender oder REST-API nutzen, um Ihre Geräte zu verwalten, Softwareversionen auf den Server hochzuladen und dort zu verwalten sowie Verteilungen für die Bereitstellung von Software auf Ihren Geräten erstellen.

Es ist ebenfalls möglich, Mender über die APIs in Ihre Umgebung zu integrieren: So können Sie zum Beispiel das Build Output aus Ihrem CI-System auf den Mender-Server hochladen und Testverteilungen erstellen.

Der Mender-Verwaltungsserver steht jetzt auf GitHub fĂĽr Installationen vor Ort zur VerfĂĽgung. Er ist unter der Apache 2.0-Lizenz lizenziert.

Mender-Client

Der Mender-Client läuft auf dem Gerät und meldet sich regelmäßig beim Server, um nach Aktualisierungen zu suchen. Ist für dieses Gerät ein Softwareupdate verfügbar, wird es vom Client heruntergeladen und installiert.


Gerätepartition für Updates auf Systemebene

Für Updates auf Systemebene benötigen wir ein duales A/B-rootfs-Partitionslayout auf dem Gerät. So kann sichergestellt werden, dass das Gerät wiederhergestellt werden kann, selbst wenn die Verteilung unvollständig ist oder bei der Installation Fehler auftreten (z. B. durch Stromausfall während des Updatevorgangs).

Der Mender-Client-Daemon läuft im Benutzerbereich in der aktuell gebooteten rootfs-Partition.

Während des Updatevorgangs schreibt der Mender-Client das aktualisierte Image auf die rootfs-Partition, die nicht benutzt wird, und konfiguriert U-Boot, damit von der aktualisierten rootfs-Partition gebootet wird. Dann wird das Gerät neu gestartet. Wenn das Booten der aktualisierten Partition fehlschlägt, wird stattdessen die vorher genutzte Partition gestartet. So wird das Gerät nicht blockiert.

Wenn das Booten erfolgreich ist, legt Mender die aktualisierte Partition als permanente Boot-Partition für den Bootvorgang beim Start von Mender fest. Während Mender das Image herunterlädt und installiert, laufen andere Anwendungen auf dem Gerät normal weiter.

Das Gerät ist nur während des Neustarts auf die aktualisierte Partition nicht verfügbar, was im Normalfall und je nach Gerätekonfiguration etwa eine Minute dauert. Persistierende Daten können auf der Datenpartition gespeichert werden, die während des Updatevorgangs nicht verändert wird.

Für Teilupdates, wie zum Beispiel Anwendungsupdates, wird die A/B-Partition nicht benötigt. Der Mender-Client kann dann als .deb-Paket installiert werden.


Erweiterbarkeit der Update-Typen

Der Mender-Client kann erweitert werden, um verschiedene Arten von Updates zu unterstützen. Dabei kommt ein Framework namens Updatemodule zum Einsatz. Die Installation des passenden Updatemoduls ermöglicht die Unterstützung bei der Installation verschiedener Typen von Softwarepaketen wie Anwendungen, Container, Paketmanager, Bootloader und Proxy-Verteilung für verbundene Peripheriegeräte.

Ein Updatemodul kann für ein bestimmtes Gerät oder eine bestimmte Umgebung angepasst werden (z. B. Aktualisierung eines firmeneigenen Bootloaders) oder allgemeiner einsetzbar sein (z. B. zur Installation von .deb-Paketen).

Wenn der Mender-Client neue Software vom Server herunterlädt, wird die .exe-Datei des Updatemoduls ausgeführt, das für den heruntergeladenen Softwaretyp benötigt wird. Das Updatemodul ist verantwortlich für das Ausführen der bei der Installation dieses Typs notwendigen Schritte. Ein Updatemodul kann außerdem erweiterte Funktionalität unterstützen, wie zum Beispiel das Rollback im Falle eines fehlgeschlagenen Updates.

Updatemodule ermöglichen volle Kontrolle und Anpassbarkeit bei der Installation eines Softwaretyps. Ein bereits bestehendes Updatemodul kann als Startpunkt genutzt und so angepasst werden, dass es genau Ihren Anforderungen entspricht. So kann zum Beispiel das Docker-Updatemodul so angepasst werden, dass es die Containerdaten selbst einschließt, wenn Sie sich nicht auf entfernte Docker-Registrierungen verlassen wollen.

Updatemodule sind eigenständige ausführbare Dateien, die in jeder Programmiersprache geschrieben werden können. Aufgrund ihrer einfachen Struktur werden Updatemodule im Normalfall in einer Skriptsprache wie Shell oder Python geschrieben. Erfahren Sie mehr zu Updatemodulen.

Mender ist einzigartig, da es sowohl stabile Updates auf System- als auch auf Anwendungsebene bietet. Dank dieser Kombination kann Mender alle Ihre Anforderungen an OTA-Updates erfüllen. Mender ermöglicht es Flottenbesitzern, Updates bei Bedarf und nur für die Zielebene zu verteilen. Ein übliches Muster ist beispielsweise die Verteilung vierteljährlicher Updates auf Betriebssystemebene und wöchentlicher Updates auf Anwendungsebene.


Sicherheit

Die Verteilung erfolgt sicher über HTTPS-Abfrage, sodass auf dem Gerät keine Ports geöffnet sind. Mender unterstützt außerdem Code-Signaturen – so können Sie sicher sein, dass Ihre Geräte von einer vertrauenswürdigen Quelle aktualisiert werden.


Jetzt gratis einsteigen

Anmelden und in den ersten 12 Monaten bis zu 10 Geräte kostenlos verbinden.
Keine Kreditkarteninfo benötigt: Melden Sie sich über ein Github- oder Google-Konto oder eine E-Mail-Adresse an.

Benötigen Sie weitere Hilfe?

Finden Sie heraus, warum Mender die beste Wahl fĂĽr sichere und stabile OTA-Updates ist.