FAQ

Häufig gestellte Fragen zu Mender

Open-Source, Planangebote, Kosten und Skalierbarkeit

Ja, sowohl der Verwaltungsserver als auch der Client von Mender auf dem Zielgerät sind quelloffen und mit einer freizügigen Lizenz, Apache 2.0, gratis nutzbar.

Wir bieten außerdem Pläne an, im Rahmen derer wir für Sie das Hosten des Mender-Verwaltungsservers übernehmen. So entfallen für die Nutzer die Einrichtungs- und Wartungskosten, die mit dem Betreiben einer Serverinfrastruktur anfallen.

Aktuell bietet Mender vier Pläne an: Gratis open-source, Starter, Professional und Enterprise. Mender Open Source bietet eine stabile und sichere End-to-End-Updateverwaltung mit Client-Server-Architektur und einer Reihe Kernfunktionen. Mender Starter ist eine Erweiterung des Open-Source-Produktplans um einen sicheren Server, den wir für Sie hosten. Mender Professional erweitert den Starter-Plan und beinhaltet wertschöpfende wirtschaftliche Funktionen mit einem sicheren Server, den wir für Sie hosten. Mender Enterprise erweitert die Möglichkeiten des Professional-Plans um SLA-Backend-Support (Dienstgütevereinbarung), kundenspezifische Preisgestaltung und Anpassungen, um die besonderen Anforderungen unserer Kunden zu erfüllen. Sie können die Pläne und Preise vergleichen unter mender.io/plans/pricing.

Wir bieten ebenfalls Beratungsleistungen.

Der Server wird regelmäßig in unserer Umgebung getestet, um sicherzustellen, dass er auf Zehn- bis Hunderttausende von Geräten skaliert werden kann. Das Einrichten, Optimieren, Skalieren und Sicherstellen der Verfügbarkeit der serverseitigen Infrastruktur ist komplex und umgebungsspezifisch; Geräteanzahl, Update-Größe, Häufigkeit, Abfrageintervalle, Hochverfügbarkeitsanforderungen und verfügbare Bandbreite sind wichtige Faktoren für die Skalierbarkeit.

Wir bieten verschiedene Pläne an, mit denen wir uns um die oben genannten komplexen Vorgänge kümmern. Mit Mender Professional erfolgt die Skalierung basierend auf Ihren Anforderungen auf einem sicheren Server, den wir für Sie hosten. Für größere und komplexere Umgebungen bieten wir Mender Enterprise mit SLA-Level-Support (Dienstgütevereinbarung) an.


Sicherheit

Ja. Angesichts der Bedeutung der Sicherheit eines OTA-Tools arbeitet Mender mit einer unabhängigen Sicherheitsprüfungsfirma zusammen. An der Behebung von Problemen wird gearbeitet, sobald sie gefunden werden.

Der Mender-Client fragt den Mender-Server regelmäßig über HTTPS nach Updates ab, sodass am Mender-Client keine Ports geöffnet werden müssen. Es sind nur TLS-Verbindungen zulässig; der Server lehnt alle unsicheren Verbindungen ab.

Zum Schutz vor Man-in-the-Middle-Angriffen speichert der Mender-Client das TLS-Zertifikat des Servers während der Bereitstellung, z. B. während der Erstellung des ursprünglichen Yocto-Project-Images, das auf das Gerät geflasht wird. CA-signierte Zertifikate werden ebenfalls unterstützt.


Unterstützung für zusätzliche Hardware- und Firmware-/OS-Anforderungen

Mender verfügt zwar über eine starke Unterstützung für das Yocto Project, unterstützt aber auch die Debian-Distributionen wie Debian und Raspbian.

Mender wurde auch auf andere Builds und Betriebssysteme, wie zum Beispiel Buildroot und OpenWRT, portiert. Weitere Beispiele finden Sie in den Blogartikeln Porting Mender to a non-Yocto build system/Mender auf ein System ohne Yocto-Build portieren und Notes from a user on Mender without Yocto/Anmerkungen eines Nutzers zu Mender ohne Yocto. Bitte beachten Sie, dass sich seit dem Verfassen der Artikel einige Anforderungen von Mender geändert haben können.

Wir planen außerdem Erweiterungen, um zusätzliche Plattformen zu unterstützen. Bitte kontaktieren Sie uns bei Fragen zur Unterstützung Ihres Betriebssystems.

Mender hat mehrere Referenzgeräte, unter anderem BeagleBone Black und Raspberry Pi 3, sowie virtuelle Geräte zu Testzwecken. Diese Geräte sind Teil des Mender CI-Systems, werden gut unterstützt und Verweise darauf finden sich in der gesamten Dokumentation.

Raspberry Pi 3 wird unterstützt mit sowohl Raspbian- als auch Yocto-Project-Builds.

Um die Kosten für die Skalierung und die Erfüllung der Anforderungen bestimmter Anwendungen zu senken, haben Produktionsgeräte in der Regel nicht dieselben Hardwarespezifikationen. Dies bedeutet, dass eine Software wie Mender in Produktionsgeräte integriert sein muss.

Eine Übersicht aller aktuell unterstützten Geräte finden Sie im Bereich Board-Integration des Mender-Hub-Forums.

Ja, Mender unterstützt sowohl GRUB als auch U-Boot. Zur Unterstützung von atomarem Rootfs Rollback integriert sich Mender in den Bootloader des Geräts. In der Dokumentation zu den Bootloader-Systemanforderungen finden Sie weitere Informationen dazu, welche U-Boot-Funktionen genau eigesetzt werden.

Im Sinne des Open-Source-Gedankens geben wir gerne Rat und Feedback zu Fragen der Implementierung und können Anfragen zur Unterstützung von mehr Bootloadern entgegennehmen; ein guter Ausgangspunkt dafür ist das Mender-Hub-Forum.

Wenn Sie keine Zeit haben, an dieser Integration zu arbeiten, bieten wir auch [Board Support Services] (/support-and-services/board-integration) an, um Ihnen bei den benötigten Integrationen zu helfen.

Unsere Strategie zur Unterstützung von Softwareupdates für diese Geräte besteht darin, Mender am Gateway als Proxy zu verwenden, um Remote-Updates für diese kleineren Geräte über diverse Netzwerkprotokolle wie ZigBee, Bluetooth Low Energy und andere lokale Netzwerktechnologien zu verteilen. Durch diesen Ansatz ist kein Agent erforderlich.

Ein Beispiel für die Nutzung von Mender zur Verwaltung von Softwareupdates für eine externe MCU finden Sie in diesem Tutorial: How to do a proxy deployment to an FRDM-K64F device connected to a Raspberry Pi 3/Proxy-Verteilung auf ein mit einem Raspberry Pi 3 verbundenen FRDM-K64F-Gerät


Produktspezifisch

Es gab viele Kompromisse, die wir zu Beginn dieses Projekts berücksichtigt haben. Letzten Endes waren wir der Meinung, dass die Community aufgrund der folgenden Punkte am meisten von Golang profitieren würde:

  • Golang hat mehr Kernsprachfunktionen und Bibliotheken, die eine viel schnellere Entwicklung von Anwendungen ermöglichen. Dadurch können mehr Mender-Funktionen für die Community und die Nutzer entwickelt werden, als es mit C als Sprache möglich gewesen wäre.
  • Die Lernkurve von C zu Golang ist dank der Ähnlichkeiten in der Struktur sehr flach, da der Mitbegründer von C (Ken Thompson) ebenfalls Mitbegründer von Golang ist.
  • Da es sich um eine kompilierte Sprache handelt, läuft Golang nativ und sehr effizient auf eingebetteten Geräten.
  • Go ist statisch zu einer einzigen Binärdatei verknüpft, und es sind keine Abhängigkeiten oder Bibliotheken auf dem Gerät erforderlich.
  • Go hat eine ähnliche Größe wie C, aber die Binärdateien werden dank der Compiler-Optimierung stetig kleiner. Beispielsweise wurde mit Go 1.7 die Binärgröße um 20–30 % reduziert. Go bietet eine breite Plattformabdeckung für Cross-Kompilierung zur Unterstützung verschiedener Architekturen.

Für duale A/B-Image-Updates benötigt Mender vier Partitionen: eine Bootpartition, zwei Root-Dateisystempartitionen und eine Datenpartition. Dies kann in der Dokumentation für das Partitionslayout nachgelesen werden. Es wird automatisch eine *.sdimg-Datei mit diesem Referenzlayout generiert, wenn Yocto-Project-Images mit Meta-Mender erstellt werden.

Es gibt bei Mender nach oben kein Limit für die Anzahl der Partitionen auf Ihrem Gerät. Mehr dazu unter der Frage, wie mehr als vier Partitionen erstellt werden können.

Zu Mender gehört ein einfacher .sdimg-Generator als Teil des Meta-Mender-Yocto-Project-Layers. Die ausgegebenen .sdimg-Dateien verfügen über Menders Referenz-Partitionslayout für vier Partitionen und ist für das Flashen auf SD-Karten mit „dd“ für Testzwecke und den einfachen Einsatz für die Produktion geeignet.

Produktionsgeräte haben normalerweise ein eigenes Toolset zum Erzeugen und Flashen interner Speicher wie eMMC, zum Beispiel imx-loader, mfg-tool, tegrarcm, oder die Anwender benutzen weiterhin ihre eigenen Tools. Bitte lesen Sie in der Anleitung dieser Tools nach, wie Sie das generierte Root-Dateisystem mit dem von Ihnen gewünschten Partitionslayout nutzen können, und achten Sie darauf, dass Sie die entsprechenden Yocto-Project-Variablen setzen, um Mender zu sagen, wo sich die vier erforderlichen Partitionen befinden. Dies ist ebenfalls in der Speicher-Dokumentation zu finden.

Hierbei handelt es sich um eine Mender-Artifact-Datei, die von Mender zur Verteilung der Updates genutzt wird. Sie beinhaltet verschiedene Metadaten, die für die stabile Verteilung von Updates erforderlich sind, unter anderem die unterstützten Gerätetypen und die Artifact-Version sowie das Update für das Root-Dateisystem an sich.

Intern ist es als tar-Archiv gepackt. Das Mender-Artifact-Format ist so konzipiert, dass mehrere Updates in derselben Datei gebündelt werden können. Weitere Informationen dazu erhalten Sie in der Dokumentation zu Mender-Artifacts

Das Mender-Artifact-Format unterstütuzt außerdem paketbasierte Updates sowie Updates für kleinere Geräte.

Bei vielen Geräten mit einem Display, das mit einem Endbenutzer interagiert, ist es wünschenswert, den Benutzer zu fragen, bevor das Update angewendet wird. Sie haben dies wahrscheinlich schon auf einem Smartphone gesehen, bei dem Sie gefragt werden, ob Sie auf die neueste Version von Android oder iOS aktualisieren möchten. Das Update startet dann erst, nachdem Sie „Anwenden“ angetippt haben.

Dies wird durch die Verwendung der Mender-Funktion [State Scripting] (https://docs.mender.io/artifacts/state-scripts) unterstützt.

Mender macht ein Update automatisch rückgängig, wenn der Mender-Server nach der Installation des Updates nicht erreichbar ist. So wird sichergestellt, dass ein anderes Update verteilt werden kann.

State Scripting unterstützt zusätzliche Plausibilitätsprüfungen, um zu gewährleisten, dass das Gerät und die Anwendungen wie erwartet funktionieren. Läuft zum Beispiel die UI-Anwendung und antwortet sie innerhalb einer vorgegebenen Zeitspanne? Wenn nicht, kann das Skript einfach 1 ausgeben und Mender wird das Update rückgängig machen.

Mender streamt das Update von dem Server über HTTPS (oder mittels Datei im Standalone-Modus). Es wird also kein temporärer Speicherplatz auf dem Gerät benötigt. Auch die Prüfsumme wird während des Streamens direkt berechnet.

Ja, Mender unterstützt das Fortsetzen unterbrochener Downloads durch HTTP-Bereichanfragen. Dies ist gerade in Umgebungen hilfreich, in denen Downloads häufiger unterbrochen werden, z. B. bei lückenhafter WLAN-Verbindung.

Um allgemein stabile Rollbacks anbieten zu können, benötigt Mender zwei rootfs-Partitionen; die Speicheranforderungen für die rootfs werden also praktisch verdoppelt. Das ist auch ersichtlich im gesamten Partitionslayout in der Dokumentation.

Die wichtigsten Designprinzipien von Mender sind: 1. Stabilität und 2. einfache Handhabung. Aktuell gibt es keinen anderen bekannten Ansatz, der die generische Stabilität und die Einfachheit des dualen rootfs-Ansatz vereint. Zweitens sinken die Preise für eingebetteten Speicher rapide. Daher nutzt Mender zuerst einen dualen rootfs-Ansatz.

In Zukunft werden auch andere, weniger stabile Updatemechaniken unterstützt, wie zum Beispiel Varianten von Paketen und Tarballs. Lesen Sie dazu bitte auch die Frage zu Updates auf Anwendungsebene sowie zu Sensoren und kleineren Geräten.

Ja, Mender bietet gebrauchsfertige Unterstützung für Anwendungsupdates und Anwendungsfälle, die über duale A/B-Vollbild-Systemaktualisierungen hinausgehen. Zu diesen Anwendungsfällen gehören Container (docker), Pakete (deb und rpm), Dateien (Verzeichnis kopieren/synchronisieren) und Proxy-Bereitstellung auf Peripheriegeräten.

Der Mender-Client zieht das Update vom Verwaltungsserver. Wir haben uns für diesen Ansatz entschieden, da Mender so mit mehr Netzwerktopologien funktioniert. Außerdem wird die Angriffsfläche des Clients reduziert, da am Gerät keine Ports für Mender geöffnet sind.

Kontaktieren Sie uns,
damit wir Ihnen helfen können!